我面临一个奇怪的问题。
我有一个小的pl / sql匿名块,提示用户输入日期。我想稍后在查询中重复使用此日期,但是我收到类似“SP2-0552:绑定变量”01“未声明的错误。”。
问题是时间中的“:01”被解释为绑定变量。解决方法是在引用'2014/04/16 01:01:01'之间输入日期而不是直接在2014/04/16 01:01:01之间输入日期。 但是,我希望能够在没有引用的情况下输入我的日期。
这是一个简单的脚本:
declare
adate VARCHAR2(20);
begin
adate := &adate;
query := 'select to_date(''' || adate ||''', ''YYYY/MM/DD HH24:MI:SS'') from dual';
dbms_output.put_line(query);
end;
Enter value for adate: 2014/04/15 01:01:01
old 4: adate := &adate;
new 4: adate := 2014/04/15 01:01:01;
SP2-0552: Bind variable "01" not declared.
答案 0 :(得分:2)
我找到了答案。
变量必须在脚本中的引号之间。
declare
adate VARCHAR2(20);
begin
adate := '&adate';
query := 'select to_date(''' || adate ||''', ''YYYY/MM/DD HH24:MI:SS'') from dual';
dbms_output.put_line(query);
end;