【发布时间】:2020-12-03 23:40:56
【问题描述】:
我有一个带有特殊字符的文件。我如何必须激活编码才能允许上传此信息。
文件.txt
11|campo2|09/13/2017 11:36:11 PM
12|cáéíóúñ12345aeiou|09/22/2017 02:41:38 PM
从 nls_session_parameters 中选择 *;
控制文件.ctl
OPTIONS (SILENT=(ALL, HEADER))
load data
infile file.txt
badfile file.bad
discardfile file.dis
append
into table TABLE_INFO
fields terminated by '|'
TRAILING NULLCOLS (
SUB_ID INTEGER EXTERNAL,
SUB_PROPERTY CHAR(4000),
MODIFY_TIME DATE TERMINATED BY "|" "to_date(:MODIFY_TIME, 'MM/DD/YYYY HH:MI:SS PM')",
UPLOAD_DATE DATE TERMINATED BY "|" "to_date('20201215153045', 'YYYYMMDDHH24MISS')",
FILE_NAME constant "nombre_archivo.txt"
)
表格
create table TABLE_INFO
(
sub_id NUMBER(20) not null,
sub_property VARCHAR2(4000),
modify_time DATE,
upload_date DATE,
file_name VARCHAR2(200)
)
sqlldr userbd/passbd control=ControlFile.ctl log=log_file.log rows=10000 direct=true
【问题讨论】:
-
请不要粘贴图片,以格式化文本形式提供结果(convertcsv.com/csv-to-flat-file.htm 或 senseful.github.io/text-table 可能会有所帮助)
-
NLS_SESSION_PARAMETERS没用 - 您的sqlldr将在不同的会话中运行,它不显示 database 字符集,也没有视图显示您的NLS_LANG参数
标签: oracle character-encoding special-characters sql-loader