【发布时间】:2014-10-23 15:25:04
【问题描述】:
我正在尝试在 PL/SQL Developer 中运行以下脚本,但我收到一条错误消息,提示“V_INSERT”不是过程或未定义,并且该语句被忽略。
有人可以帮忙吗?谢谢!
DECLARE chktime date; v_trunc varchar2(200); v_insert varchar2(200);
BEGIN
Select trunc(max(a.action_timestamp)) into chktime from hcr_dm.hcr_dm_fact a;
If chktime <> trunc(sysdate) then
v_trunc:='truncate table yxg3509.account_crosswalk_hcrdm';
execute immediate v_trunc;
Else
v_trunc:='truncate table yxg3509.product_to_ah_092514';
v_insert:='insert into yxg3509.product_to_ah_092514
select prod.oracle_prod_code,
prod.oracle_prod_description,
prod.ah_code,
prod.effective_date
from hcr_sandbox.product_to_ah prod';
execute immediate v_trunc; v_insert;
END IF;
END;
【问题讨论】:
-
立即执行 v_trunc; v_插入;一条 exec 语句是否正确?
-
这是问题所在:立即执行 v_trunc; v_insert;
-
该;是第一个问题
-
第二个是你需要分开2个执行
-
ps:这种情况下不需要动态插入
标签: variables if-statement plsql insert execute-immediate