我正在尝试使用“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;
答案 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'')';
在输出中输入单''
。