如何解决ORA-00917:缺少逗号错误?

问题描述 投票:0回答:2

我需要在表中插入带有日期时间的数据和下面给出的查询:

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_CHAR('07-Jan-24 20:00:21','DD-MON-YY:HH24:MI:SS'),TO_CHAR('07-Jan-24 20:00:21','DD-MON-YY:HH24:MI:SS'),'602')

它抛出错误:第 243 列缺少逗号。我也尝试了 TO_DATE。也没有用。

sql oracle
2个回答
0
投票

问题似乎出在

TO_CHAR
函数格式上。正确的格式应为“DD-MON-YY HH24:MI:SS”,“YY”和“HH24”之间不带冒号。所以正确的查询应该是:

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_CHAR('07-Jan-24 20:00:21','DD-MON-YY HH24:MI:SS'),TO_CHAR('07-Jan-24 20:00:21','DD-MON-YY HH24:MI:SS'),'602')

您可以在此处查看 Oracle 文档中的

TO_CHAR
函数:链接


0
投票

您正在使用 TO_CHAR 将日期转换为字符串,在这种情况下您要尝试插入日期,因此必须使用 TO_DATE: 你能试试这个吗:

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-YY HH24:MI:SS'),
    TO_DATE('07-Jan-24 20:00:21', 'DD-MON-YY HH24:MI:SS'),
    '602'
);

或者日期格式也可能有问题!

© www.soinside.com 2019 - 2024. All rights reserved.