假设你有一张桌子:
CREATE TABLE Customer
(
batch_id NUMBER,
customer_name VARCHAR2(20),
customer_address VARCHAR2(100)
)
Run Code Online (Sandbox Code Playgroud)
并假设您有一个控制文件来填充此表:
LOAD DATA INFILE 'customers.dat' REPLACE INTO TABLE Customer ( batch_id ??????, customer_name POSITION(001:020), customer_address POSITION(021:120) )
batch_id我运行SQL*Loader时是否可以将值传递给我的控制文件?例如,是否可以指定绑定变量(将问号转换为:MY_AWESOME_BATCH_ID)?
一种相对简单的归档方法是创建一个存储函数,该函数返回批号并在装入器文件中使用它.
create or replace function getBatchNumber return number as
begin
return 815;
end;
/
Run Code Online (Sandbox Code Playgroud)
LOAD DATA INFILE 'customers.dat'
REPLACE
INTO TABLE Customer
(
batch_id "getBatchNumber",
customer_name POSITION(001:020),
customer_address POSITION(021:120)
)
Run Code Online (Sandbox Code Playgroud)