“命令行错误:1 列:698 错误报告 - SQL 错误:ORA-00984:此处不允许列
Posted
技术标签:
【中文标题】“命令行错误:1 列:698 错误报告 - SQL 错误:ORA-00984:此处不允许列【英文标题】:"Error at Command Line : 1 Column : 698 Error report - SQL Error: ORA-00984: column not allowed here 【发布时间】:2016-08-29 18:38:05 【问题描述】:INSERT INTO
FLAG ("OPT_FLAG_KEY","H_KEY","FIRST_NAME","LAST_NAME",
"MIDDLE_NAME","TITLE","CREDENTIALS","ADDRESS_LINE_1",
"ADDRESS_LINE_2","ADDRESS_LINE_3","CITY","STATE",
"POSTAL_CODE","PHONE_NUMBER","BUSIN_PHONE","DECEASED",
"OPT_FLAG","OPT_FLAG_DATE","SOU_KEY","SOU_FILE_ID",
"SOU_FILE_ID_TEXT","BAT_ID","PHONE_NUMBER_SOURCE","BIRTH_DATE")
VALUES(37009326,4,'Daniel','Boyle',NULL,NULL,NULL,'368 Road',
NULL,NULL,'Doylown','BVBV',1801,NULL,NULL,'NO','OUT',
TO_CHAR('10-AUG-16','DD/MM/YYYY'),201,
TO_DATE(SUBSTR('vhic_pavir_20160810.txt',12,8),YYYYMMDD),
'2016-08-10',598441,NULL,TO_DATE('03-FEB-1952',DD-MM-YYYY));
我已在我的数据库中运行此查询,但出现如下错误
命令行错误:1 列:698 错误报告 SQL 错误:ORA-00984:此处不允许列 00984. 00000 - “此处不允许列” *原因: *行动:”
编辑:这是我的桌子的描述:
Name Null Type
------------------- ---- -------------
OPT_FLAG_KEY NUMBER(14)
H_KEY NUMBER(14)
FIRST_NAME VARCHAR2(50)
LAST_NAME VARCHAR2(50)
MIDDLE_NAME VARCHAR2(50)
TITLE VARCHAR2(50)
CREDENTIALS VARCHAR2(50)
ADDRESS_LINE_1 VARCHAR2(100)
ADDRESS_LINE_2 VARCHAR2(100)
ADDRESS_LINE_3 VARCHAR2(100)
CITY VARCHAR2(50)
STATE VARCHAR2(20)
POSTAL_CODE VARCHAR2(20)
PHONE_NUMBER VARCHAR2(100)
BUSIN_PHONE VARCHAR2(100)
DECEASED VARCHAR2(5)
OPT_FLAG VARCHAR2(10)
OPT_FLAG_DATE DATE
SOU_KEY NUMBER(14)
SOU_FILE_ID DATE
SOU_FILE_ID_TEXT VARCHAR2(20)
BATCH_ID NUMBER(14)
PHONE_NUMBER_SOURCE VARCHAR2(100)
BIRTH_DATE DATE
【问题讨论】:
能否提供 desc 表(使用 desc table_name 命令)? 我不能给这里的所有专栏,我已经粘贴在我的 answer@abhishek 表名是什么? 表名是 FLAG 我不希望因为这个原因出现 ORA-00984 错误,但列名应该不带引号,即INSERT INTO FLAG (OPT_FLAG_KEY, H_KEY, FIRST_NAME, LAST_NAME, MIDDLE_NAME, TITLE, CREDENTIALS, ADDRESS_LINE_1, ADDRESS_LINE_2, ADDRESS_LINE_3, CITY, STATE
等希望它有所帮助。
【参考方案1】:
您的陈述有几个问题。首先,列名不需要双引号(除非您有混合大小写或空格),请删除它们。
TO_CHAR('10-AUG-16','DD/MM/YYYY')
-> 10-AUG-16
是一个字符串,而不是日期。因此,将字符串转换为字符串没有任何意义
TO_DATE(SUBSTR('vhic_pavir_20160810.txt',12,8),YYYYMMDD)
-> 格式必须是单引号,即TO_DATE(SUBSTR('vhic_pavir_20160810.txt',12,8),'YYYYMMDD')
'2016-08-10' -> 你想插入DATE
值还是字符串?您提供的是字符串,而不是日期。
TO_DATE('03-FEB-1952',DD-MM-YYYY))
-> 格式必须是单引号,见上文。 MM
表示月份编号,而不是月份名称。
【讨论】:
以上是关于“命令行错误:1 列:698 错误报告 - SQL 错误:ORA-00984:此处不允许列的主要内容,如果未能解决你的问题,请参考以下文章