CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

在oracle8中如何写数据到文本文件中去

楼主twofish(toofoo)2003-06-02 10:48:35 在 Oracle / 基础和管理 提问

在oracle8中如何写数据到文本文件中去 问题点数:50、回复次数:7Top

1 楼more_zou(小人物)回复于 2003-06-02 11:16:14 得分 10

sql>set   echo   off   feedback   off  
  sql>spool   xxx.txt  
  sql>select   *   from   ...  
  ...  
  sql>spool   offTop

2 楼zzok1()回复于 2003-06-02 11:41:55 得分 0

more_zou(小人物)     说的很好,我补充一点  
   
   
  sql>set   echo   off   feedback   off   heading   off  
  sql>spool   xxx.txt  
  sql>select   *   from   ...  
  ...  
  sql>spool   off  
   
   
  在   xxx.txt   中去掉两行就可以了Top

3 楼twofish(toofoo)回复于 2003-06-02 13:48:52 得分 0

可以用在存储过程中吗?Top

4 楼zhaozy777(蓝)回复于 2003-06-02 15:56:01 得分 10

也可以直接使用pl/sql   developer工具,非常方便,直接选表然后save   as就可以了Top

5 楼more_zou(小人物)回复于 2003-06-02 22:10:22 得分 10

可以用在存储过程中吗?  
  不可以Top

6 楼more_zou(小人物)回复于 2003-06-02 22:34:08 得分 10

a   example   from   asktom  
  it   might   look   like:  
   
  create   or   replace   function     dump_csv(   p_query           in   varchar2,  
                                                                              p_separator   in   varchar2    
                                                                                                          default   ',',  
                                                                              p_dir               in   varchar2   ,  
                                                                              p_filename     in   varchar2   )  
  return   number  
  AUTHID   CURRENT_USER  
  is  
          l_output                 utl_file.file_type;  
          l_theCursor           integer   default   dbms_sql.open_cursor;  
          l_columnValue       varchar2(2000);  
          l_status                 integer;  
          l_colCnt                 number   default   0;  
          l_separator           varchar2(10)   default   '';  
          l_cnt                       number   default   0;  
  begin  
          l_output   :=   utl_file.fopen(   p_dir,   p_filename,   'w'   );  
   
          dbms_sql.parse(     l_theCursor,     p_query,   dbms_sql.native   );  
   
          for   i   in   1   ..   255   loop  
                  begin  
                          dbms_sql.define_column(   l_theCursor,   i,    
                                                                          l_columnValue,   2000   );  
                          l_colCnt   :=   i;  
                  exception  
                          when   others   then  
                                  if   (   sqlcode   =   -1007   )   then   exit;  
                                  else  
                                          raise;  
                                  end   if;  
                  end;  
          end   loop;  
   
          dbms_sql.define_column(   l_theCursor,   1,   l_columnValue,    
                                                          2000   );  
   
          l_status   :=   dbms_sql.execute(l_theCursor);  
   
          loop  
                  exit   when   (   dbms_sql.fetch_rows(l_theCursor)   <=   0   );  
                  l_separator   :=   '';  
                  for   i   in   1   ..   l_colCnt   loop  
                          dbms_sql.column_value(   l_theCursor,   i,    
                                                                        l_columnValue   );  
                          utl_file.put(   l_output,   l_separator   ||      
                                                                          l_columnValue   );  
                          l_separator   :=   p_separator;  
                  end   loop;  
                  utl_file.new_line(   l_output   );  
                  l_cnt   :=   l_cnt+1;  
          end   loop;  
          dbms_sql.close_cursor(l_theCursor);  
   
          utl_file.fclose(   l_output   );  
          return   l_cnt;  
  end   dump_csv;  
  /  
   
   
  You   would   use   that   for   example   like   this:  
   
  create   or   replace   procedure   test_dump_csv  
  as  
          l_rows     number;  
  begin  
          l_rows   :=   dump_csv(   'select   *    
                                                        from   all_users    
                                                        where   rownum   <   25',    
                                                  ',',   '/tmp',   'test.dat'   );  
  end;  
  /  
   
   
  Make   sure   to   read   about   the   INIT.ORA   parameters   (utl_file_dir)   you   need   to   setup    
  !!!  
  Top

7 楼cd1860(守莲小子)回复于 2003-06-03 10:03:05 得分 10

小人物  
    说的就是sys下的utf_file包,你对照此包,再看一下他的程序就会明  
  白。Top

相关问题

  • 文本文件导入ORACLE数据库,用C#代码实现
  • 如何把一个文本文件中的数据写到另一个文文本文件中去?
  • 如何将,.TEXT的文本文件写入数据库中?
  • 读取文本文件写入ACCESS数据库的问题
  • (100分)有关VC 读写文本文件的数据?
  • 怎样实现向文本文件写数据?
  • 如何写100K的文本文件到数据库字段中
  • 请问 Oracle 如何导出一个表数据到 一个文本文件中??
  • Oracle数据库中怎么导出所有表结构至文本文件
  • 问题:从oracle中导出数据到文本文件的方法,(多种);

关键词

  • dbms
  • sql
  • spool
  • xxx
  • default
  • invarchar2

得分解答快速导航

  • 帖主:twofish
  • more_zou
  • zhaozy777
  • more_zou
  • more_zou
  • cd1860

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo