Oracle APEX PL/SQL 错误

Oracle APEX PL/SQL Error

我有这个 PL/SQL 声明:

BEGIN
    DELETE FROM REI_RETAIL_FACTOR_PARTS P
    WHERE  DEALER_NUMBER = :P13_FILTER_DEALER;

    INSERT INTO REI_RETAIL_FACTOR_PARTS
    (
        SELECT
            RF.TEILE_NR as "PART_NR",
            :P13_OVERWRITE_VALUE as "REQUESTED_RATE",
            sysdate as "REQUEST_DATE",
            :P13_FILTER_DEALER as "DEALER_NUMBER"
        FROM REI_RETAIL_FACTOR RF
        WHERE DEALER_NUMBER = :P13_FILTER_DEALER
    );
END;

错误是:

ORA-01861: literal does not match format string.

这真的很令人沮丧,因为我从来没有尝试格式化任何东西。 那么,为什么我总是收到这个错误?

ORA-01861: literal does not match format string.

您的 INSERT 语法有误。可能的解决方案:

a) 定义列列表:

BEGIN
    DELETE FROM REI_RETAIL_FACTOR_PARTS P
    WHERE  DEALER_NUMBER = :P13_FILTER_DEALER;

    INSERT INTO REI_RETAIL_FACTOR_PARTS(column_name1, ...)
        SELECT
            RF.TEILE_NR as "PART_NR",
            :P13_OVERWRITE_VALUE as "REQUESTED_RATE",
            sysdate as "REQUEST_DATE",
            :P13_FILTER_DEALER as "DEALER_NUMBER"
        FROM REI_RETAIL_FACTOR RF
        WHERE DEALER_NUMBER = :P13_FILTER_DEALER;
END;

b) 删除 ()(警告!select 中的列顺序至关重要):

BEGIN
    DELETE FROM REI_RETAIL_FACTOR_PARTS P
    WHERE  DEALER_NUMBER = :P13_FILTER_DEALER;

    INSERT INTO REI_RETAIL_FACTOR_PARTS
        SELECT
            RF.TEILE_NR as "PART_NR",
            :P13_OVERWRITE_VALUE as "REQUESTED_RATE",
            sysdate as "REQUEST_DATE",
            :P13_FILTER_DEALER as "DEALER_NUMBER"
        FROM REI_RETAIL_FACTOR RF
        WHERE DEALER_NUMBER = :P13_FILTER_DEALER;
END;