假设你有一张 table :
CREATE TABLE Customer
(
batch_id NUMBER,
customer_name VARCHAR2(20),
customer_address VARCHAR2(100)
)
假设你有一个控制文件来填充这个表:
加载数据文件'customers.dat'
代替
INTO TABLE 客户
(
batch_id ??????,
客户名称位置(001:020),
客户地址位置(021:120)
)
当我运行 SQL*Loader 时,是否可以将
batch_id
的值传递给我的控制文件?例如,是否可以指定绑定(bind)变量(将问号变成 :MY_AWESOME_BATCH_ID
)? 最佳答案
一种相对简单的归档方法是创建一个存储函数,该函数返回批号并在加载程序文件中使用它。
create or replace function getBatchNumber return number as
begin
return 815;
end;
/
LOAD DATA INFILE 'customers.dat'
REPLACE
INTO TABLE Customer
(
batch_id "getBatchNumber",
customer_name POSITION(001:020),
customer_address POSITION(021:120)
)
关于oracle - 变量可以传递给 SQL*Loader 控制文件吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3760283/