高分!SQL 2000中不通过程序,如何导出csv文件,或把数据倒进到csv中?

时间:2023-01-07 18:12:30
在所有任务-->导出数据那里如何导出csv文件?谢谢!!

14 个解决方案

#1



http://blog.csdn.net/picture_1230/archive/2008/02/25/2118217.aspx PL/SQL   can   do   it,   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 
!!! 

#2


学习

#3


关注

#4


楼上这个可是ORACLE了。
其实SQL2005比较简单了。

导出数据之后
1.选择数据源,选择要导出的表
2.选择目标,平面文件源----浏览-----文件类型(选CSV文件),确定
3.下一步导出就可以了。

#5


貌似没办法。

#6


引用 4 楼 JonasFeng 的回复:
楼上这个可是ORACLE了。 
其实SQL2005比较简单了。 
导出数据之后 
1.选择数据源,选择要导出的表 
2.选择目标,平面文件源----浏览-----文件类型(选CSV文件),确定 
3.下一步导出就可以了。
这样只能导出一张表。

#7


我的是sql 2000,不知道该怎么弄好呢??

#8


引用 7 楼 kkkuuu 的回复:
我的是sql 2000,不知道该怎么弄好呢??

这个好象不行 
要不你先转换为一种中间格式 再转?

#9


昏了,但sql 2000的导出里也有csv这个格式啊,就是不知道具体是怎么操作,老是报错。

#10


查询的结果,直接 保存就是了

#11


引用 10 楼 nalnait 的回复:
查询的结果,直接 保存就是了
呵呵,默认是csv

#12


学习

#13


查询分析器查询后,全选查询结果,右键“另存为”,默认就是CSV格式的!

#14


BCP XXX..XXX out  d:\XX/XX.csv   -c  -t","  -Usa -Psa -S192.168.X.X

#1



http://blog.csdn.net/picture_1230/archive/2008/02/25/2118217.aspx PL/SQL   can   do   it,   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 
!!! 

#2


学习

#3


关注

#4


楼上这个可是ORACLE了。
其实SQL2005比较简单了。

导出数据之后
1.选择数据源,选择要导出的表
2.选择目标,平面文件源----浏览-----文件类型(选CSV文件),确定
3.下一步导出就可以了。

#5


貌似没办法。

#6


引用 4 楼 JonasFeng 的回复:
楼上这个可是ORACLE了。 
其实SQL2005比较简单了。 
导出数据之后 
1.选择数据源,选择要导出的表 
2.选择目标,平面文件源----浏览-----文件类型(选CSV文件),确定 
3.下一步导出就可以了。
这样只能导出一张表。

#7


我的是sql 2000,不知道该怎么弄好呢??

#8


引用 7 楼 kkkuuu 的回复:
我的是sql 2000,不知道该怎么弄好呢??

这个好象不行 
要不你先转换为一种中间格式 再转?

#9


昏了,但sql 2000的导出里也有csv这个格式啊,就是不知道具体是怎么操作,老是报错。

#10


查询的结果,直接 保存就是了

#11


引用 10 楼 nalnait 的回复:
查询的结果,直接 保存就是了
呵呵,默认是csv

#12


学习

#13


查询分析器查询后,全选查询结果,右键“另存为”,默认就是CSV格式的!

#14


BCP XXX..XXX out  d:\XX/XX.csv   -c  -t","  -Usa -Psa -S192.168.X.X