需求:把oracle数据库中符合条件的n多表,导出成csv文本文件,并以表名.csv为文件名存放。 实现:通过存储过程中utl_file函数来实
需求:把oracle数据库中符合条件的n多表,导出成csv文本文件,并以表名.csv为文件名存放。
实现:通过存储过程中utl_file函数来实现。导出的csv文件放入提前创建好的directory中。
oracle awr报告生成与查看
在centos 6.4下安装oracle 11gr2(x64)
oracle 11gr2 在vmware虚拟机中安装步骤
debian 下 安装 oracle 11g xe r2
oracle awr报告生成步骤
oracle数据库表导出和导入csv文件操作
使用方法:使用以下命令数据预执行的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;
/
本文永久更新链接地址:
,