oracle开启输出,将Oracle表内容输出到文本的方法

将ORACLE9数据库表内容输出到文本文件的两种方法

(SPOOL / UTL_FILE)

数据库服务名为:cncworks

数据库sys用户密码为:gesys

数据库simpdba(普通用户)密码为:well

现有一个数据库表:

create table simpdba.test

(

id number(1),

name varchar2(20),

address varchar2(20)

);

内容如下:

insert into simpdba.test values(1,'quchch','sy');

insert into simpdba.test values(2,'chenwen','dl');

insert into simpdba.test values(3,'wangbh','xj');

insert into simpdba.test values(4,'liuliang','sx');

insert into simpdba.test values(5,'liben','jl');

COMMIT;

希望在硬盘D:out下输出一个文件a.txt,内容格式如下:

1|quchch|sy

2|chenwen|dl

3|wangbh|xj

4|liuliang|sx

5|liben|jl

方法一:利用SQL/PLUS的SPOOL

1、建立一个文件D:ex.sql内容如下

set heading off

set echo off

set term off

set line 0

set pages 0

set feed off

spool d:outa.txt

select id||'|'||name||'|'||address as newcloumn from test;

spool off;

set heading on

set echo on

set term on

set feed on

2、在CMD控制台打开SQL PLUS

输入sqlplus

成功登录后,输入命令:

SQL>@D:ex.SQL

运行成功后,即可在D:outa.txt中看到输出内容。

#说明:此文件可生成于客户端或者数据库服务器端。

viewspace-934691

方法二:利用UTF_FILE

1、用sys用户登录到数据库:

sqlplus

connas sysdba

2、在sqlplus中运行

create or replace directory TMP as 'd:out';

3、授权

grant read, write on directory TMP to simpdba;

4、用普通用户登录到数据库

conn

5、建立包及包体(或者存储过程)

这里把它存储到D:pro.sql

执行SQL>@D:pro.sql

create or replace package QUCHCH

AS

procedure START_OUT;

end QUCHCH;

/

show errors;

create or replace package body QUCHCH

AS

OutputFile UTL_FILE.FILE_TYPE; --输出文件对象

type struct_records is record(

id number(38),

name varchar2(38),

address varchar2(38)

);

logtemp struct_records;

CURSOR log_cursor IS select id,name,address from test;

PROCEDURE START_OUT

AS

BEGIN

--生成日志文件。保存在数据库服务器“D:out”目录下,文件名“b.txt”

OutputFile := UTL_FILE.FOPEN('TMP','b.txt','a');

DBMS_OUTPUT.PUT_LINE('***BEGIN TO EXPORT DATA!***');

OPEN log_cursor;

loop

fetch log_cursor into logtemp;

exit when log_cursor%notfound;

UTL_FILE.PUTF(OutputFile,'%s|%s|%sn',logtemp.id,logtemp.name,logtemp.address);

END loop;

CLOSE log_cursor;

DBMS_OUTPUT.PUT_LINE('***FINISHED EXPORT DATA!***');

UTL_FILE.FFLUSH(OutputFile);

UTL_FILE.fclose(OutputFile);

END START_OUT;

END QUCHCH;

/

show errors;

6、执行

SQL>set serverout on

SQL>exec quchch.START_OUT;

viewspace-934691

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值