我有一个基于文本文件中位置的 Oracle SQL Loader 控制文件。一个特定的字段会定期从源中获取省略号'...'
,这会导致加载表中的回车。无论我要求'...'
这些用户不使用多少次,最终都会有人忘记,或者由于人员流动等原因。这是该字段的当前控制文件行:
TRAN_DESC POSITION(153 : 202) Char,
是否有任何命令可以添加到此行以忽略省略号等特殊字符?
我有一个基于文本文件中位置的 Oracle SQL Loader 控制文件。一个特定的字段会定期从源中获取省略号'...'
,这会导致加载表中的回车。无论我要求'...'
这些用户不使用多少次,最终都会有人忘记,或者由于人员流动等原因。这是该字段的当前控制文件行:
TRAN_DESC POSITION(153 : 202) Char,
是否有任何命令可以添加到此行以忽略省略号等特殊字符?
我会想到的REPLACE
。这是一个例子。
样品表:
SQL> create table test (id number, tran_desc varchar2(10));
Table created.
控制文件:
load data
infile *
into table test
(id position(1:2),
tran_desc position(3:12) char "replace(:tran_desc, '...', '')"
)
begindata
10LittleFoot
11Big...foot
加载会话和结果:
SQL> $sqlldr scott/tiger control=test2.ctl log=test2.log
SQL*Loader: Release 11.2.0.2.0 - Production on Pon Tra 5 17:03:39 2021
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 2
SQL> select * from test;
ID TRAN_DESC
---------- ----------
10 LittleFoot
11 Bigfoot
SQL>