SqlLoader怎么使用

2020-07-10 08:04:34易采站长站整理

infile *
replace
into table lob_demo
(owner position(17:25),
time_stamp position(44:55) date "Mon DD HH24:MI",
filename position(57:100),
data lobfile(filename) terminated by EOF
)
begindata
-rw-r--r-- 1 tkyte tkyte 1220342 jun 17 15:26 classes12.zip
select owner,time_stamp,filename,dbms_lob.getlength(data) from lob_demo;

3)将lob数据加载到对象列

一般用于加载图像


create table image_load(
id number,
name varchar2(255),
image ordsys.ordimage) --首先要了解ordsys.ordimage类型

加载这种数据的控制文件如下所示:


load data
infile *
into table image_load
replace
fields terminated by ','
(id,
name,
file_name filler,
image column object
(
source column object
(
localdata lobfile(file_name) terminated by EOF
nullif file_name='none'
)
)
)
begindata
1,icons,icons.gif

注:column object告诉sqlldr这不是一个列名,而是列名的一部分。

使用的列名是image.source.localdata


select * from image_load


--继续编辑加载进来数据的属性
begin
for c in (select * from image_load) loop
c.image.setproperties;--setproperties是ordsys.ordimage类型提供的方法,处理图像本身,并用适当的值更新对象的其余属性
end loop;
end;

额外介绍:

使用plsql加载lob数据


create table demo (id int primary key,theclob clob)
create or replace directory dir1 as 'D:oracle';
SQL> host echo 'hello world!' >d:/oracle/test.txt
declare
l_clob clob;
l_bfile bfile;
begin
insert into demo values (1, empty_clob()) returning theclob into l_clob;
l_bfile := bfilename('DIR1', 'test.txt');
dbms_lob.fileopen(l_bfile);
dbms_lob.loadfromfile(l_clob, l_bfile, dbms_lob.getlength(l_bfile));
dbms_lob.fileclose(l_bfile);
end;
select dbms_lob.getlength(theclob),theclob from demo;

注:

创建的目录默认为大写DIR1,如果目录写成dir1就会提示错误,如果要想使用混有大小写的目录名,在创建这样的目录时应该带引号的标识符,如下所示:


create or replace directory "dir2" as 'D:oracle';

以上内容是小编给大家分享的关于SqlLoader怎么使用的相关资料,希望大家喜欢。

您可能感兴趣的文章:Oracle 高速批量数据加载工具sql*loader使用说明[Oracle] 常用工具集之SQL*Loader的用法SQL LOADER错误小结

相关文章 大家在看