SELECT TO_CHAR(MAX(CREATE_TIME),'YYYYMMDDHH24MISS') INTO LV_DATE FROM TH_CEP_59_HIS ;
P_DROP_TABLE_NEW('FJTLCTEST','TM_VOUCHER_EMP');
LV_SQL :='CREATE TABLE TM_VOUCHER_EMP NOLOGGING
AS
SELECT A.*,B.CHANGE_PARAM
FROM TF_CHANGE_VOUCHER A ,TF_CHANGE_DETAIL B
WHERE TO_CHAR(A.CREATE_TIME," YYYYMMDDHH24MISS ")>'''||LV_DATE||'''
AND A.EXTSYSTEMID = "CEP"
AND A.VOUCHER_STATE = 1
AND A.VOUCHER_SEQ = B.VOUCHER_SEQ ';
EXECUTE IMMEDIATE LV_SQL;
这是DDL语句写的过程中的一段代码,为什么一直不通过?编译是成功的,单独提出来,也是可以执行的,但放在过程中就抛异常。
把你的完整的SQL贴出来
例如可以写成
V_SQL='begin
delete from TM_VOUCHER_EMP;
insert into TM_VOUCHER_EMP;
SELECT A.*,B.CHANGE_PARAM
FROM TF_CHANGE_VOUCHER A ,TF_CHANGE_DETAIL B
WHERE TO_CHAR(A.CREATE_TIME,"YYYYMMDDHH24MISS")>(SELECT TO_CHAR(MAX(CREATE_TIME),'YYYYMMDDHH24MISS') FROM TH_CEP_59_HIS)
AND A.EXTSYSTEMID = CEP"
AND A.VOUCHER_STATE = 1
AND A.VOUCHER_SEQ = B.VOUCHER_SEQ; END;';