實現:通過儲存過程中utl_file函式來實現。匯出的csv檔案放入提前建立好的directory中。
使用方法:使用以下命令資料預執行的sql指令碼
select 'exec sql_to_csv(''select * from ' ||t.table_name ||
''',''out_put_csv''' || ',''ods_mds.' || t.table_name ||
'.csv'');'
from user_tables t
指令碼說明:sql_to_csv 儲存過程名;out_put_csv資料庫目錄名稱;ods_mds預定義的schema名稱;
儲存過程**如下:
create or replace procedure chenqy.sql_to_csv
( p_query in varchar2, -- plsql文
p_dir in varchar2, -- 匯出的檔案放置目錄
p_filename in varchar2 -- csv名
) is
l_output utl_file.file_type;
l_thecursor integer default dbms_sql.open_cursor;
l_columnvalue varchar2(4000);
l_status integer;
l_colcnt number := 0;
l_separator varchar2(1);
l_desctbl dbms_sql.desc_tab;
p_max_linesize number := 32000;
begin
--open file
l_output := utl_file.fopen(p_dir, p_filename, 'w', p_max_linesize);
--define date format
execute immediate '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
for i in 1 .. l_colcnt loop
utl_file.put(l_output,l_separator || '"' || l_desctbl(i).col_name || '"'); --輸出表字段
dbms_sql.define_column(l_thecursor, i, l_columnvalue, 4000);
l_separator := ',';
end loop;
utl_file.new_line(l_output); --輸出表字段
--execute the query statement
l_status := dbms_sql.execute(l_thecursor);
--dump table column value
while (dbms_sql.fetch_rows(l_thecursor) > 0) loop
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 || '"' ||
trim(both ' ' from replace(l_columnvalue, '"', '""')) || '"');
l_separator := ',';
end loop;
utl_file.new_line(l_output);
end loop;
--close cursor
dbms_sql.close_cursor(l_thecursor);
--close file
utl_file.fclose(l_output);
exception
when others then
raise;
end;
/
批量匯出表資料到CSV檔案
需求 把oracle資料庫中符合條件的n多表。匯出成csv文字檔案。並以表名.csv為檔名稱存放。實現 通過儲存過程中utl file函式來實現。匯出的csv檔案放入提前建立好的directory中。用法 使用下面命令資料預執行的sql指令碼 select exec sql to csv selec...
Mysql 匯出表資料到 csv
select from users into outfile f develop mysql57 uploads users.csv character set utf8 fields terminated by optionally enclosed by escaped by lines ter...
PHP匯出資料到CSV檔案
後台往往需要匯出各種資料到 excel文件中。通常我們是匯出 csv檔案格式,php匯出函式參考 如下 匯出資料到csv檔案 param array data 二維陣列 模擬資料表記錄 param array titlelist 標題陣列列表 param string filename csv檔名 ...