EXECUTE IMMEDIATE失败

时间:2017-11-09 15:34:05

标签: plsql

我正在尝试使用“EXECUTE IMMEDIATE”,当我运行我不断获得的程序时 -

  

ORA-00904: "NOV": invalid identifier.

我检查了20次列,名字是对的。该表只有2列 - acc,run1。

另外,在输出中我[使用dbms_output.put_line (v_stat)]:

update LAHAD2
set run1 = 19-NOV-17
我错过了什么吗?

create or replace procedure lahad is

v_sec_t varchar2 (100) := 'LAHAD2';
v_date date := trunc (sysdate+10); 
v_stat varchar2 (500);

begin

v_stat :=   
'update '|| v_sec_t|| '
set run1 = ' || v_date ;

dbms_output.put_line (v_stat);

EXECUTE IMMEDIATE v_stat;        

end Lahad;

1 个答案:

答案 0 :(得分:0)

你必须拥有:

window 10
64 Bit  

所以对于上面这个,你必须有

update LAHAD2 set run1 = '19-NOV-17'

在此周围设置v_stat := 'update '|| v_sec_t|| ' set run1 = ''' || v_date ||''''; 也可能更安全。期待:

to_date

你需要

update LAHAD2 set run1 = to_date('19-NOV-17', 'DD-MON-YY')

希望你得到的东西,特别是这个v_stat := 'update '|| v_sec_t|| ' set run1 = to_date(''' || v_date ||''') , ''DD-MON-YY'')'; 在输出中输入单''