oracle exp如何写sql,Oracle技术网—如何把数据exp到Sql loader里

先用文本编辑器把下面的3个脚本存成3个.sql文件,然后

SQL>@ExportTable

下面是这3个文件

--文件1:ExportTable.sql

--执行者:用户

--目的: Export table data to SQLLoader files

accept TableName prompt 'Table to export:'

set concat ~

prompt Data file - &TableName~.csv

prompt Control file - &TableName~.ctl

spool &TableName~.sql

start GetLoaderData &TableName

spool &TableName.csv

start &TableName

spool &TableName~.ctl

start GetLoaderControl &TableName

spool off

host del &TableName~.sql

rem host rm &TableName~.sql

set termout on

--------------------------------------------------------------------------------------------------------------

--文件2:GetLoaderControl.sql

--执行者: ExportTable.sql

--目的: Create SQLLoader control file

set pause off

set newpage none

set heading off

set concat ~

set feedback off

set verify off

set linesize 80

set trimspool on

set trimout off

set termout off

column ord noprint

select 1 ord,'load data' from dual

union

select 2 ord,'infile &&TableName.csv' from dual

union

select 3 ord,'append' from dual

union

select 4 ord,'into table &TableName' from dual

union

select 5 ord,'fields terminated by ' || ''';''' from dual

union

select 6 ord,'(' from dual

union

select 10*column_id ord, column_name || ' ' ||

decode(data_type,

'NUMBER','decimal external',

'VARCHAR2','char',

'CHAR','char',

'DATE','date') || ','

from user_tab_columns

where table_name = upper('&TableName')

and column_id not in ( select max(column_id)

from user_tab_columns

where table_name = upper('&TableName') )

union

select 1000*column_id ord,column_name || ' ' ||

decode(data_type,

'NUMBER','decimal external',

'VARCHAR2','char',

'CHAR','char',

'DATE','date') || ')'

from user_tab_columns

where table_name=upper('&TableName')

and column_id in ( select max(column_id)

from user_tab_columns

where table_name = upper('&TableName') )

order by ord;

--------------------------------------------------------------------------------------------------------------

--文件3:GetLoaderData.sql

--执行者: ExportTable.sql

--目的: Create script extracting data from table

set pause off

set newpage none

set heading off

set concat ~

set feedback off

set verify off

set linesize 1000

set trimspool on

set trimout on

set termout off

column ord noprint

select 0 ord, 'select',null,null,'rtrim('||column_name ||')'

from user_tab_columns

where table_name = upper('&&TableName')

and column_id=1

union

select column_id ord, '||' , ''';''' , '||' ,'rtrim('||column_name ||')'

from user_tab_columns

where table_name = upper('&TableName')

and column_id > 1

union

select 1000 ord, '||' , ''';''' , null, 'from &TableName order by 1;'

from dual

order by ord;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值