壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3599|回复: 12

PLSQL问题:如何用PLSQL在本地创建一个TXT文件.

[复制链接]
发表于 2007/11/23 16:09:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何用PLSQL在本地创建一个TXT文件.
就是关于directory的用法.我建了一个directory关联到我的F:\text下.
然后怎么办?
达人指教一下...
谢谢.
发表于 2007/11/26 17:23:45 | 显示全部楼层
使用utl_file

评分

参与人数 1壹佰币 +1 收起 理由
yakira + 1 辛苦了!加加分给你^.^

查看全部评分

 楼主| 发表于 2007/11/27 13:49:00 | 显示全部楼层
BEGIN
     l_file :=utl_file.fopen('FILEPATH','test.txt','R');    --FILEPATH是先于导出前用户建立的存储导出文件的路径
     utl_file.put_line(l_file,'jobs表导出数据');
   END;
这个代码不完善,帮忙完善一下。还有这代码应复制在那里运行。
谢谢了。十分感谢。
发表于 2007/11/27 13:50:02 | 显示全部楼层
利用UTL_FILE包实现文件IO操作.doc (31 KB, 下载次数: 34)
发表于 2007/11/27 17:21:40 | 显示全部楼层

怎么会是R呢?

BEGIN
     l_file :=utl_file.fopen('FILEPATH','test.txt','R');    --FILEPATH是先于导出前用户建立的存储导出文件的路径
     utl_file.put_line(l_file,'jobs表导出数据');
   END;


R是读取, 应该用w或a.
发表于 2007/11/30 11:26:17 | 显示全部楼层
我的做法是:
set head off;
set feedback off;
set linesize 180;
set pagesize 0;
set long 10000;
set echo off;

spool E:\WJ1_Model\Production_Data\source\dd_forecast;
-- select
select rtrim(ltrim(demand_order_id))||chr(9)||
       rtrim(ltrim(part_number))||chr(9)||
       rtrim(ltrim(part_quantity))||chr(9)||
       rtrim(ltrim(to_char(sales_due_date,'YYYY/MM/DD HH24:MI:SS')))||chr(9)||
       rtrim(ltrim(demand_type_priority))||chr(9)||
       rtrim(ltrim(uio_week))||chr(9)||
       rtrim(ltrim(uio_cus_month))||chr(9)
  from aps_dd_forecast_t
where organization_id = 224;

spool off;
发表于 2007/11/30 12:54:49 | 显示全部楼层
跟樓上意見一致
发表于 2007/11/30 15:17:56 | 显示全部楼层
學習一下,目前只用Delphi完成過此功能
发表于 2007/12/1 11:40:28 | 显示全部楼层
恩,好好学习一下
发表于 2009/1/9 18:36:56 | 显示全部楼层
thank you
发表于 2009/1/15 10:13:22 | 显示全部楼层
看看,学习一下
发表于 2009/1/19 12:23:40 | 显示全部楼层
先查查那些目录可用:
select * from v$parameter
where name like 'utl_file%';
要增加:
CONNECT / AS SYSDBA
CREATE OR REPLACE DIRECTORY mydir AS '/tmp';
GRANT read, write ON DIRECTORY mydir TO scott;

GRANT EXECUTE ON UTL_FILE TO scott;

DECLARE
  fHandler UTL_FILE.FILE_TYPE;
BEGIN
  fHandler := UTL_FILE.FOPEN('MYDIR', 'myfile', 'w');
  UTL_FILE.PUTF(fHandler, 'Look ma, I''m writing to a file!!!\n');
  UTL_FILE.FCLOSE(fHandler);
EXCEPTION
  WHEN utl_file.invalid_path THEN
     raise_application_error(-20000, 'Invalid path. Create directory or set UTL_FILE_DIR.');
END;
发表于 2009/1/19 12:31:48 | 显示全部楼层
FOPEN用的MYDIR一定要在v$parameter中定义。
Oracle10G的话,查查以下表。
select * from ALL_DIRECTORIES; MYDIR要用Directory_name,不是Directory_path.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 02:04 , Processed in 0.027650 second(s), 21 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表