无法确定 "ORA-00922: missing or invalid option" 错误的原因

Unable to determine the cause of the "ORA-00922: missing or invalid option" error

当我尝试 运行 Talend 作业将数据从 Oracle 脚本加载到数据库时,出现“ORA-00922:缺少或无效选项”错误 table

脚本本身已在 Oracle SQL 编辑器以及 Talend

中测试并成功 运行s

有谁知道为什么我 运行 在 Talend 中加载作业时会出现错误?

在 Internet 上快速查找此错误显示:

ORA-00922:如果在定义存储子句或列时指定了无效选项,则会出现选项缺失或无效。 Oracle 提供了有关此错误的以下信息:

原因:指定列的有效选项是 NOT NULL 以指定该列不能包含任何 NULL 值。只有约束可以跟随数据类型。在 DATE 或 LONG 数据类型上指定最大长度也会导致此错误。

如果我们可以暂时假设错误来自 SCHEMA,那么有人看到这个模式有什么问题吗?

这里是目的地 table 的定义,直接取自 Oracle。 table 名称是付款

目的地table已经存在。当我 运行 将插入脚本直接插入 table 时,首先我收到消息:命令行错误:6 列:17 错误报告 - SQL 错误:ORA-00984:列这里不允许。第 6 行第 17 列的项目恰好是程序代码。

当我在程序代码的值(以及日期值)周围加上引号时,插入有效。正在填充不可为 null 的字段,如果我尝试将 NULL 插入不可为 null 的字段

,则会显示相应的错误消息

这是一个有效的插入脚本:

INSERT INTO PAYMENTS 
(CLAIMANT_ID, CLAIM_ID, PROGRAM_CODE, BWE_DATE, PROCESS_DATE, DEPOSIT_DATE,
GROSS_AMOUNT,CLAIMANT_NET_AMOUNT, FEDERAL_TAXES, STATE_LOCAL_TAXES, OP_OFFSET, 
 OOS_OP_OFFSET, CHILD_SUPPORT, OOS_CS, FPUC, LWA)
VALUES
(123456,54321,'ABC','24-OCT-20','01-JAN-21','04-JAN-21',149,128,15,6,0,0,0,0,0,0)

感谢大家的帮助,错误原因已查明。我在脚本的末尾放了一个分号(当您编写 SQL 查询时通常会这样做。)但是在 Talend 中,整个脚本以双引号开头和结尾。脚本后不能有分号,然后以双引号结尾。一旦分号被删除,错误就消失了