我有假日表,其描述为
Name Null? Type
HOLIDAYDATE DATE
DESCRIPTION VARCHAR2(20)
包含数据
HOLIDAYDA DESCRIPTION
--------- --------------------
19-JAN-11 to
17-JAN-11 to
10-JAN-11 a
这是我的代码:
DECLARE a date;
SELECT holidaydate
INTO a
FROM holiday
WHERE holidaydate = SYSDATE;
DBMS_OUTPUT.PUT_LINE(a);
我收到这样的错误。
第2行的错误: ORA-06550:第2行第1列: PLS-00103:遇到以下其中一项时遇到符号“SELECT”: 开始函数包编译指示程序子类型使用 形成 当前光标
有谁能告诉我代码中的问题是什么?
答案 0 :(得分:4)
declare
a date;
begin
select holidaydate into a from holiday where holidaydate = sysdate;
dbms_output.put_line(a);
end;
但是这可能会给你一个新的错误(没有找到数据),因为可能没有在Holidaydate中输入Sysdate的记录,因为sysdate也包含时间。
所以试试这个:
declare
a date;
begin
select
(select holidaydate from holiday where holidaydate = trunc(sysdate))
into a
from dual;
dbms_output.put_line(a);
end;
这将切断时间部分,检查整个日期。如果您的表中还有完整日期,则更有可能产生结果。如果没有,select from dual将捕获该值,并使a
返回NULL。
您现在可能遇到的唯一错误是,当有多个记录包含相同的日期时。