{{1}}
不确定我收到此错误的原因
未声明绑定变量
有什么建议吗?
答案 0 :(得分:2)
这是你的代码:
Insert into booking
values ('EWKF2VN', 'Canada', TO_DATE(11/20/12,'DD/MON/YY'),
TO_DATE(1/10/18 4:00PM, 'DD/MON/YY HH:MIAM'),
TO_DATE(1/10/18 6:30PM, 'DD/MON/YY HH:MIAM'),
'B', 125.00, Booked, 'AC101', 8521169618
);
值Booked
未声明。
我会把它写成:
Insert into booking ( . . . ) -- explicitly list columns here
values ('EWKF2VN', 'Canada', DATE '2012-11-20',
TIMESTAMP '2018-01-10 16:00:00',
TIMESTAMP '2018-01-10 18:30:00',
'B', 125.00, 'Booked', 'AC101', 8521169618
);
这会明确列出列。它使用内置关键字来提供日期和时间戳常量。
答案 1 :(得分:2)
你得到的错误是因为你这样做了:
TO_DATE(1/10/18 4:00PM, 'DD/MON/YY HH:MIAM'),
TO_DATE(1/10/18 6:30PM, 'DD/MON/YY HH:MIAM'),
使用您尝试转换缺少的单引号窗口的值;所以:00PM
和:30PM
被解释为绑定变量。因此错误消息,因为它们确实没有声明。
所以你可以这样做:
TO_DATE(‘1/10/18 4:00PM’, 'DD/MON/YY HH:MIAM'),
TO_DATE(‘1/10/18 6:30PM’, 'DD/MON/YY HH:MIAM'),
但是如果可能的话,我更愿意使用日期/时间戳文字,正如戈登所说。正如Gordon所提到的那样,您还缺少围绕仅日期值和Booked
的单引号,并明确列出列名称确实是一个好主意。