ORA-00917: oracle 中不存在插入时缺少逗号
Posted
技术标签:
【中文标题】ORA-00917: oracle 中不存在插入时缺少逗号【英文标题】:ORA-00917: missing comma when insert not exist in oracle 【发布时间】:2015-11-25 01:30:32 【问题描述】:我有这样的查询:
INSERT INTO KONTAK (IDKONTAK, NAMA, NOHP, ALAMAT, GROUPKONTAK_FK) VALUES
(SQ_IDKONTAK.NEXTVAL, 'ANDIKA PRATAMA', '+6285226202202', 'JPR', '' WHERE NOT EXISTS
(SELECT * FROM KONTAK WHERE NAMA = 'AMIN'))
我想根据 KONTAK NAMA='AMIN' 中不存在的值向 KONTAK 表插入数据。
当我运行它时,我得到了错误:
ORA-00917:缺少逗号
有什么建议吗?
【问题讨论】:
是的。插入第 5 列值时出现问题。在第 5 列中告诉我您需要的确切值是多少? 首先,我不认为这是合法的语法,但除此之外,你为什么在没有加入任何东西时使用 WHERE EXISTS? 我暂时删除了我的答案。您能否更好地解释您要完成的工作。您是否尝试进行条件插入。仅当某个值不存在时才插入常量(硬编码)值列表? “AMIN”与您插入的值有什么关系? @VarunRao 当我给 5tn 列赋值时它仍然缺少逗号 @mrjoltcola 我会在下面尝试建议 【参考方案1】:如果您尝试进行有条件的插入,那么您可以使用 MERGE,或者使用类似的东西,假设您想要插入 'ANDIKA PRATAMA'
仅当 'AMIN'
不存在时(这没有意义对我来说,但这似乎是你的目标):
insert into table1(id1, col1, col2)
select sequence1.nextval, 'VAL1', 'VAL2'
from dual
where not exists (select 1 from table1 where col1 = 'AMIN')
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9014.htm
【讨论】:
【参考方案2】:在插入时使用Where
条件和select
语句;
试试;
INSERT INTO KONTAK (IDKONTAK, NAMA, NOHP, ALAMAT, GROUPKONTAK_FK)
select
SQ_IDKONTAK.NEXTVAL, 'ANDIKA PRATAMA', '+6285226202202', 'JPR', ''
from dual
WHERE NOT EXISTS (
SELECT * FROM KONTAK WHERE NAMA = 'AMIN'
)
【讨论】:
你的建议是真的,..但我不能投票接受你的答案,因为 mrjoltcola 也是正确的答案,..而且他的答案比你快,......很抱歉,。 ...但感谢您的建议...以上是关于ORA-00917: oracle 中不存在插入时缺少逗号的主要内容,如果未能解决你的问题,请参考以下文章
java执行sql报错 ora-00917 missing comma ,可是sql在后台打印出来的我贴在plsql中就可以执行