通过 SQL Loader 加载 bfile
loading bfile via SQL Loader
我正在尝试使用 SQL 加载程序将值加载到 table 中,其中一列是 BFILE。
我的 table 看起来像这样:
create table documents
( id number primary key
, text bfile)
这是我的 CTL 和 DAT 文件:
loader.ctl
load data
infile d':\test\loader.dat'
into table documents
replace
fields terminated by ';'
( id integer
, text bfilename('MY_DIRECTORY', 'my_file.txt') terminated by eof)
loader.dat
3;my_file.txt
当我用上面的参数执行sqlldr命令时,我收到错误信息:
SQL*Loader-350: Suntax error at line 7.
Expecting "," or ")", found "bfilename".
, text bfilename('MY_DIRECTORY', 'my_file.txt') terminated by eof)
^
是我做错了什么还是 SQL 加载程序不接受 BFILE?
谢谢,
文档有 a section on loading BFILE columns.
您需要有一个填充列来表示数据文件中的文件名字段,然后在 bfile()
而非 bfilename()
字段定义中引用该填充字段名称:
load data
infile d:\test\loader.dat
into table documents
replace
fields terminated by ';'
( id
, filename filler
, text bfile(constant 'MY_DIRECTORY', filename) )
您不希望您的 ID
字段被声明为 integer
; this is a full-word binary integer,您可能不会在 table 列中获得预期的值。
如果您想明确转换为数字,您可以这样做:
...
fields terminated by ';'
( id "to_number(:id)"
, filename filler
, text bfile(constant 'MY_DIRECTORY', filename) )
但隐式转换通常也可以。
我正在尝试使用 SQL 加载程序将值加载到 table 中,其中一列是 BFILE。
我的 table 看起来像这样:
create table documents
( id number primary key
, text bfile)
这是我的 CTL 和 DAT 文件:
loader.ctl
load data
infile d':\test\loader.dat'
into table documents
replace
fields terminated by ';'
( id integer
, text bfilename('MY_DIRECTORY', 'my_file.txt') terminated by eof)
loader.dat
3;my_file.txt
当我用上面的参数执行sqlldr命令时,我收到错误信息:
SQL*Loader-350: Suntax error at line 7.
Expecting "," or ")", found "bfilename".
, text bfilename('MY_DIRECTORY', 'my_file.txt') terminated by eof) ^
是我做错了什么还是 SQL 加载程序不接受 BFILE?
谢谢,
文档有 a section on loading BFILE columns.
您需要有一个填充列来表示数据文件中的文件名字段,然后在 bfile()
而非 bfilename()
字段定义中引用该填充字段名称:
load data
infile d:\test\loader.dat
into table documents
replace
fields terminated by ';'
( id
, filename filler
, text bfile(constant 'MY_DIRECTORY', filename) )
您不希望您的 ID
字段被声明为 integer
; this is a full-word binary integer,您可能不会在 table 列中获得预期的值。
如果您想明确转换为数字,您可以这样做:
...
fields terminated by ';'
( id "to_number(:id)"
, filename filler
, text bfile(constant 'MY_DIRECTORY', filename) )
但隐式转换通常也可以。