如何解决ORA-00917: 缺失逗号错误?插入含日期时间数据遇问题
问题分析与解决
你的SQL语句存在多处语法问题,直接导致了报错,具体修正点和正确语句如下:
- 所有字符串类型的参数(如
org、NEW、Item Internal等)未用单引号包裹,这是SQL语法的硬性要求 - 日期字段
LAST_UPDATE_DATE和CREATION_DATE需用TO_DATE将字符串转为日期类型,你误用了TO_CHAR(该函数是把日期转成字符串,方向完全相反) - 路径
/media/属于字符串值,同样需要单引号包裹 TABLE是SQL关键字,作为表名时建议用双引号括起来,或替换为实际业务表名
修正后的SQL语句:
INSERT INTO "TABLE" (ITEM_NUMBER, ORGANIZATION_CODE, RECORD_STATUS, FILE_DESCRIPTION, ATTACHMENT_CATEGORY, FILE_NAME, TRANSACTION_TYPE, FILE_PATH, LAST_UPDATE_DATE, CREATION_DATE, RECORD_ID) VALUES (10000, 'org', 'NEW', 'wre', 'Item Internal', 'ZPDF001_1.pdf', 'CREATE', '/media/', TO_DATE('07-Jan-24 20:00:21','DD-MON-RR HH24:MI:SS'), TO_DATE('07-Jan-24 20:00:21','DD-MON-RR HH24:MI:SS'), '602')
补充:日期格式中的
YY推荐换成RR,处理跨世纪日期时兼容性更强;若数据库默认日期格式匹配,也可直接使用带单引号的日期字符串,但显式用TO_DATE转换更稳妥
内容的提问来源于stack exchange,提问作者Sakthi Priya
相关产品推荐
相关产品推荐

