首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未指定来自关键字的ORA-00923

未指定来自关键字的ORA-00923
EN

Stack Overflow用户
提问于 2019-07-30 16:06:16
回答 1查看 51关注 0票数 0

我知道这个问题有很多答案,但老实说,我真的找不到任何解决我的问题的方法,我真的看不出我做错了什么。

我试图通过select和一些更改插入一些数据,但每次我从关键字not found where excepted得到这个

我试着多次用不同的方式引用它,但效果不是很好,我知道我的选择“正常”工作。

代码语言:javascript
复制
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||'';
代码语言:javascript
复制
EXECUTE IMMEDIATE(exec) ;

当然,这里使用的2个变量是有效的,并返回2个数字

我希望它只需在同一个表中插入几乎相同的数据,只是更改了ENV_IDDATE_CREATION

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-30 16:17:01

我认为你的一个数字中有一个, -最好使用bind而不是连接:

代码语言:javascript
复制
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呢?为什么不直接:

代码语言:javascript
复制
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;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57267036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档