请帮助
IF EXISTS(SELECT * FROM MERC_ADM_VERSION )then UPDATE MERC_ADM_VERSION SET
VER_VALEUR = 20150409 WHERE VER_CLE = 'MEAD' ELSE INSERT INTO MERC_ADM_VERSION
('VER_VALEUR', 'VER_CLE') VALUES (20150409, 'MEAD');
ORA-00900:无效的SQL语句
答案 0 :(得分:0)
从insert语句中的列中删除单引号。
而不是
('VER_VALEUR', 'VER_CLE')
应该是
(VER_VALEUR, VER_CLE)
答案 1 :(得分:0)
你的问题很清楚你要做什么。但是,我最好的解释是你正在寻找一个oracle合并声明。以下是基于我对您提供的少量信息所做假设的示例。您很可能正在寻找MERGE语句。这允许您执行单个操作,可以根据您的条件更新或插入。
此外,您似乎使用了日期,但采用的是数字格式。由于缺少任何表定义,我没有采取任何措施来解决这个问题。你可能还有问题。
MERGE
INTO merc_adm_version TARGET -- The table you want to update/insert into
USING (SELECT 20150409 as ver_valeur, 'MEAD' as ver_cle FROM dual) SOURCE -- The source of the data
ON (TARGET.ver_cle = SOURCE.ver_cle) -- How to try and match records between source and target
WHEN MATCHED THEN UPDATE SET ver_valeur = 20150409 -- When there is a match, how to update
WHEN NOT MATCHED THEN INSERT (ver_cle, ver_valeur) -- When there is not a match, how to insert
VALUES ('MEAD', 20150409);