Database 我哪里漏了一个逗号?

Database 我哪里漏了一个逗号?,database,oracle11g,Database,Oracle11g,y的值包含单引号,这会打断字符串。您需要通过将它们加倍来逃避它们: SQL> SQL> insert into employees values('&id','&fname','&lname','&numbermo','&yyy','&jobid','&MonthlyS','&managerID','&Did'); Enter value for id: 10 Enter value for fname: ews

y
的值包含单引号,这会打断字符串。您需要通过将它们加倍来逃避它们:

SQL>
SQL> insert into employees values('&id','&fname','&lname','&numbermo','&yyy','&jobid','&MonthlyS','&managerID','&Did');
Enter value for id: 10
Enter value for fname: ewssfws
Enter value for lname: weffs
Enter value for numbermo: 987654321
Enter value for yyy: To_Date('2020/10/10')
Enter value for jobid: J1
Enter value for monthlys: 25000
Enter value for managerid: 20
Enter value for did: A2
old   1: insert into employees values('&id','&fname','&lname','&numbermo','&yyy','&jobid','&MonthlyS','&managerID','&Did')
new   1: insert into employees values('10','ewssfws','weffs','987654321','To_Date('2020/10/10')','J1','25000','20','A2')
insert into employees values('10','ewssfws','weffs','987654321','To_Date('2020/10/10')','J1','25000','20','A2')
                                                                          *
ERROR at line 1:
ORA-00917: missing comma

请注意,这是两个连续的单引号字符(
),而不是双引号字符(
)。

正如Oracle告诉您的那样,
YYY
参数出现错误。您必须使用双单引号

但是,对没有格式掩码的字符串应用
TO_DATE
是不好的做法。如果我是你,我会插入一个日期文字,它总是
日期'yyyy-mm-dd'
。因此:

To_Date(''2020/10/10'')

我不知道您的特定Oracle工具可能存在什么问题,但我还想指出,您当前对
to_DATE
的调用将不起作用,并将生成以下错误:

ORA-01861:文字与格式字符串不匹配

考虑这个版本:

SQL> create table test (id number, yyy date);

Table created.

SQL> insert into test (id, yyy) values (&id, &yyy);
Enter value for id: 1
Enter value for yyy: date '2020-08-28'
old   1: insert into test (id, yyy) values (&id, &yyy)
new   1: insert into test (id, yyy) values (1, date '2020-08-28')

1 row created.

SQL> select * from test;

        ID YYY
---------- ----------------
         1 28.08.2020 00:00

SQL>

好的,如果格式与当前NLS设置匹配,它可能会工作,但是的-我同意-这是一个糟糕的选择。To_Date是一个函数-所以不要在它之前和之后添加单个引号。因为值被给定为“To_Date('2020/10/10')”,而对于后面的单个引号没有转义序列(它正在考虑“To_Date”)('作为一个值,值后应为逗号。
INSERT INTO employees 
VALUES
('10', 'ewssfws', 'weffs', '987654321', date '2020-10-10', 'J1', '25000', '20', 'A2');