oracle 过程导入导出,使用Oracle存储过程导入导出数据文件

本文介绍了如何使用Oracle的存储过程进行数据的导入和导出,详细讲解了两个存储过程的创建和执行,包括导出数据到文本或CSV文件,以及从格式化的文本文件导入数据到Oracle表。
摘要由CSDN通过智能技术生成

搞了几天,终于把使用Oracle存储过程导入导出数据做成功了。现在分享一下,供大家共同进步。在这里我非常非常感谢“往事如梦”,以及“Oracle爱好者”上好友的帮助。

首先判断utl_file_dir的目录

SQL> show parameter utl_file_dir

NAME                                 TYPE        VALUE

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

utl_file_dir                         string      C:\logmnr

修改utl_file_dir目录的方法:

在D:\oracle\product\10.2.0\db_1\database目录下的initSID.ora文件中添加utl_file_dir=C:\logmnr即可(也可修改为其它目录)

在这里以utl_file_dir=c:\logmnr为列子进行测试;

使用Oracle编写存储过程导出数据的存储过程为:

CREATEORREPLACEPROCEDURE"EXP_DATA"

(

P_QUERYINVARCHAR2,-- sql语句 例子: 'select * from TEST'

P_DIRINVARCHAR2,-- 目录  用这个命令查看目录show parameter utl_file_dir

P_FILENAMEINVARCHAR2--  要生成的文件名

)

IS

L_OUTPUT UTL_FILE.FILE_TYPE;

L_THECURSORINTEGERDEFAULTDBMS_SQL.OPEN_CURSOR;

L_COLUMNVALUEVARCHAR2(4000);

L_STATUSINTEGER;

L_COLCNTNUMBER:=0;

L_SEPARATORVARCHAR2(1);

L_DESCTBL DBMS_SQL.DESC_TAB;

P_MAX_LINESIZENUMBER:=32000;

BEGIN

--OPEN FILE

L_OUTPUT:=UTL_FILE.FOPEN(P_DIR,P_FILENAME,'W',P_MAX_LINESIZE);

--DEFINE DATE FORMAT

EXECUTEIMMEDIATE'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''';

--OPEN CURSOR

DBMS_SQL.PARSE(L_THECURSOR,P_QUERY,DBMS_SQL.NATIVE);

DBMS_SQL.DESCRIBE_COLUMNS(L_THECURSOR,L_COLCNT,L_DESCTBL);

--DUMP TABLE COLUMN NAME

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值