提问人:cmomah 提问时间:1/30/2021 最后编辑:cmomah 更新时间:2/5/2021 访问量:4487
无法确定“ORA-00922:缺少或无效选项”错误的原因
Unable to determine the cause of the "ORA-00922: missing or invalid option" error
问:
当我尝试运行 Talend 作业以将数据从 Oracle 脚本加载到数据库表时,出现“ORA-00922: missing or invalid option”错误
脚本本身已经过测试,并在 Oracle SQL 编辑器和 Talend 中成功运行
有谁知道为什么我在 Talend 中运行加载作业时可能会收到错误?
在互联网上快速查找此错误显示:
ORA-00922:如果在定义存储子句或列时指定了无效选项,则会出现选项缺失或无效。Oracle 提供有关此错误的以下信息:
原因: 指定列的有效选项不是 NULL 指定列不能包含任何 NULL 值。只有约束才能遵循数据类型。在 DATE 或 LONG 数据类型上指定最大长度也会导致此错误。
如果我们可以暂时假设错误来自 SCHEMA,那么有人认为这个架构有什么问题吗?
- “Column”和“Type”列属于数据源:Oracle SQL 脚本
- “DB Column”(数据库列)和 “DB Type”(数据库类型)列属于 Oracle DB 表,数据应加载到该表中
下面是直接从 Oracle 获取的目标表的定义。表名称为 Payments
目标表已存在。当我直接在表中运行插入脚本时,首先我收到消息:命令行错误: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)
答:
评论
create table