我知道这个问题有很多答案,但老实说,我真的找不到任何解决我的问题的方法,我真的看不出我做错了什么。
我试图通过select和一些更改插入一些数据,但每次我从关键字not found where excepted得到这个
我试着多次用不同的方式引用它,但效果不是很好,我知道我的选择“正常”工作。
exec :='INSERT INTO TALEND_CONTEXT_GROUP (PROJECT_ID,CONTEXT_NAME,CONTEXT_TYPE,CONTEXT_DESC,ENV_ID,DATE_CREATION,USER_CREATION)
SELECT PROJECT_ID, CONTEXT_NAME, CONTEXT_TYPE, CONTEXT_DESC, '||New_Env_Id||', '||Current_Date||',USER_CREATION
FROM TALEND_CONTEXT_GROUP
WHERE PROJECT_ID = '||Project_Id||'';EXECUTE IMMEDIATE(exec) ;当然,这里使用的2个变量是有效的,并返回2个数字
我希望它只需在同一个表中插入几乎相同的数据,只是更改了ENV_ID和DATE_CREATION
发布于 2019-07-30 16:17:01
我认为你的一个数字中有一个, -最好使用bind而不是连接:
EXECUTE IMMEDIATE 'INSERT INTO TALEND_CONTEXT_GROUP (PROJECT_ID,CONTEXT_NAME,CONTEXT_TYPE,CONTEXT_DESC,ENV_ID,DATE_CREATION,USER_CREATION)
SELECT PROJECT_ID, CONTEXT_NAME, CONTEXT_TYPE, CONTEXT_DESC, :New_Env_Id, :CURRENT_DATE,USER_CREATION
FROM TALEND_CONTEXT_GROUP
WHERE PROJECT_ID = :Project_Id' using New_Env_Id, CURRENT_DATE, Project_Id;那么,为什么还要使用动态sql呢?为什么不直接:
INSERT INTO TALEND_CONTEXT_GROUP (PROJECT_ID,CONTEXT_NAME,CONTEXT_TYPE,CONTEXT_DESC,ENV_ID,DATE_CREATION,USER_CREATION)
SELECT PROJECT_ID, CONTEXT_NAME, CONTEXT_TYPE, CONTEXT_DESC, New_Env_Id, CURRENT_DATE,USER_CREATION
FROM TALEND_CONTEXT_GROUP
WHERE PROJECT_ID = Project_Id;https://stackoverflow.com/questions/57267036
复制相似问题