未指定关键字的ORA-00923



我知道这个问题有很多答案,但老实说,我真的找不到任何问题,我不知道自己在做什么错。p>我试图通过选择和一些更改插入一些数据,但是每次我从关键字中找到此数据

我试图多次QoTE,但它也没有起作用,我知道我的选择"正常"起作用。

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_IDDATE_CREATION

我认为您的数字之一中有一个, - 更好地使用绑定然后constination:

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;

最新更新