考虑SQLLoader从路径读取输入数据文件,并根据控制文件中指定的描述将数据加载到表中。 首先,创建要填充的表:
create table sql_loader_1 ( load_time date, field_1 Numeric, field_2 varchar2(10)
样本控制文件: load_1.ctl
load data
infile 'load_1.dat' "str '\r\n'"
insert into table sql_loader_1
(
load_time sysdate,
field_2 position( 1:10),
field_1 position(11:20)
)
请注意,位置11到20会加载到field_1中,位置1到10会加载到field_2中。字段load_time填充了负载的当前时间(sysdate)。
这是数据。已使用控制文件中的infile语句指定了文件名(load_1.dat)。
load_1.dat
0123456789abcdefghij
**********##########
foo bar
here comes a very long line
and the next is
short
这里我要验证field_1(数值数据类型),因为数据文件包含字符值(即)abcdefghij
答案 0 :(得分:1)
你说你想验证field_1,但是如果验证失败,你还不清楚你期望采取什么行动?
另外两个想法:
您是否考虑在控制文件中使用BADFILE选项拒绝行?
不是处理SQL-Loader中的数字转换,而是将数据作为文本加载并将其转换为数字/在数据库中处理一次。这可能更容易。