使用SQL Loader导入Oracle表遇ORA-01747错误,求不改列名的解决方法
嘿,这个问题我之前也碰到过!因为你用了Oracle的保留关键字NUMBER作为列名,SQL Loader解析时会把它当成语法关键字而非列名,所以才抛出了ORA-01747错误。不用改列名的话,有两种靠谱的解决办法:
解决SQL Loader导入含保留字列名的Oracle表问题
方法1:在CTL文件中严格使用双引号包裹标识符
你的表是用带双引号的语句创建的(比如"NUMBER"),所以SQL Loader里必须完全匹配这种大小写敏感的引用规则。
给你一个可用的CTL文件示例:
LOAD DATA INFILE 'your_data_file.csv' -- 替换成你的数据文件实际路径 INTO TABLE "PWC_IT_SERVICE" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( "SEQ" INTEGER EXTERNAL, "NUMBER" CHAR(10), "CI_NAME" CHAR(200), "CI_CLASS" CHAR(200), "OWNED_BY_PRIMARY" CHAR(200), "OWNED_BY_SECONDARY" CHAR(200), "MANAGING_TERRITORY" CHAR(200), "LOS" CHAR(100), "BUSINESS_UNIT" CHAR(100), "IMPORTED" DATE "YYYY-MM-DD", -- 根据你的实际日期格式调整 "LAST_UPDATED" DATE "YYYY-MM-DD" )
关键要点:
- 表名必须用双引号括起来:
"PWC_IT_SERVICE",因为建表时用了带引号的标识符(Oracle对带引号的标识符会严格区分大小写) - 包括
"NUMBER"在内的所有列名,都要用双引号包裹,明确告诉SQL Loader这是一个列标识符,而非关键字
方法2:使用自定义INSERT语句绕开关键字冲突
如果不想修改整个列的引用方式,可以在CTL中指定自定义的SQL子句,把保留字列名用双引号包裹(注意Oracle中字符串里的双引号需要转义成两个双引号)。
示例如下:
LOAD DATA INFILE 'your_data_file.csv' INTO TABLE PWC_IT_SERVICE FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( SEQ INTEGER EXTERNAL, temp_num CHAR(10), -- 把数据文件中的字段映射到临时变量 CI_NAME CHAR(200), CI_CLASS CHAR(200), OWNED_BY_PRIMARY CHAR(200), OWNED_BY_SECONDARY CHAR(200), MANAGING_TERRITORY CHAR(200), LOS CHAR(100), BUSINESS_UNIT CHAR(100), IMPORTED DATE "YYYY-MM-DD", LAST_UPDATED DATE "YYYY-MM-DD" ) -- 自定义INSERT语句,用转义的双引号包裹保留字列名 SQL "INSERT INTO ""PWC_IT_SERVICE"" (""SEQ"", ""NUMBER"", ""CI_NAME"", ""CI_CLASS"", ""OWNED_BY_PRIMARY"", ""OWNED_BY_SECONDARY"", ""MANAGING_TERRITORY"", ""LOS"", ""BUSINESS_UNIT"", ""IMPORTED"", ""LAST_UPDATED"") VALUES (:SEQ, :temp_num, :CI_NAME, :CI_CLASS, :OWNED_BY_PRIMARY, :OWNED_BY_SECONDARY, :MANAGING_TERRITORY, :LOS, :BUSINESS_UNIT, :IMPORTED, :LAST_UPDATED)"
关键要点:
- 把数据文件中对应
NUMBER列的内容先映射到一个临时变量(比如temp_num) - 在
INSERT语句中,用""NUMBER""的形式转义双引号,让Oracle识别这是列名而非关键字
额外提醒
虽然这两种方法能解决当前问题,但还是建议尽量避免用Oracle的保留关键字作为列名或表名——后续的SQL查询、维护都会频繁碰到类似的引号问题,增加不必要的复杂度。
内容的提问来源于stack exchange,提问作者Nandhini
相关产品推荐
相关产品推荐

