Oracle 11g插入含嵌套SQL的JSON值时报ORA-00917错误求助
Oracle 11g INSERT语句ORA-00917错误修复方案
错误原因
报错ORA-00917: missing comma是因为VALUE字段的JSON字符串中,sqlQuery对应的嵌套SQL语句里的单引号未正确转义。Oracle规定,字符串内的单引号必须用**两个连续单引号('')**表示,否则会被识别为字符串结束标记,导致语法解析混乱。
修正后的INSERT语句
INSERT INTO EIPLOGGING.EIP_CONFIG (STORE_NAME,KEY,VALUE) VALUES ( 'TscCommonConfig', 'DEV.TscPetsenseAppntmntSkuSnwflke.config', '{"source":"UM","target":"Snowflake","endPoint":"https://tractorsupply.east-us-2.privatelink.snowflakecomputing.com/api/statements","timeoutInMs":"5000","retryMaxCount":"1","retryIntervalInSec":"1","enableSuccessLogger":"true","sqlQuery":"INSERT INTO WW_APPOINTMENT_ARTICLE (WW_APPT_ID,ARTICLE_NO,STORE_NO,TRANS_NO,TIME_DIM_KEY) values (''<WW_APPT_ID>'',''<ARTICLE_NO>'',''<STORE_NO>'',''<TRANS_NO>'',''<TIME_DIM_KEY>'')","role":"SVCEIPDEV_ROLE","database":"TSC_DEV_DB","schema":"EDW","timeoutInSec":10}' );
修改说明
将原语句中sqlQuery值里的所有单引号'替换为'',例如:
- 原
'<WW_APPT_ID>'→ 修正为''<WW_APPT_ID>'' - 所有嵌套SQL中的单引号都按此规则替换,确保Oracle能正确解析整个JSON字符串作为
VALUE字段的内容。
内容的提问来源于stack exchange,提问作者Mihul12
相关产品推荐
相关产品推荐

