我哪里少了一个逗号


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

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

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

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

Oracle告诉您,YYY参数将出现错误。你必须使用双引号。

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

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>

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

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

考虑这个版本:

INSERT INTO employees 
VALUES
('10', 'ewssfws', 'weffs', '987654321', date '2020-10-10', 'J1', '25000', '20', 'A2');

最新更新