oracle 如何把表导出csv

前端之家收集整理的这篇文章主要介绍了oracle 如何把表导出csv前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
CREATE@H_502_3@ OR@H_502_3@ REPLACE@H_502_3@ PROCEDURE@H_502_3@ sql_TO_CSV@H_502_3@
@H_502_3@ (@H_502_3@
@H_502_3@ P_QUERY@H_502_3@ IN@H_502_3@ VARCHAR2,@H_502_3@ --PLsql文@H_502_3@
@H_502_3@ P_DIR@H_502_3@ IN@H_502_3@ VARCHAR2,@H_502_3@ --导出的文件放置目录@H_502_3@
@H_502_3@ P_FILENAME@H_502_3@ IN@H_502_3@ VARCHAR2@H_502_3@ --CSV名@H_502_3@
)@H_502_3@
IS@H_502_3@
@H_502_3@ L_OUTPUTUTL_FILE.FILE_TYPE;@H_502_3@
@H_502_3@ L_THECURSOR@H_502_3@ INTEGER@H_502_3@ DEFAULT@H_502_3@ DBMS_sql.OPEN_CURSOR;@H_502_3@
@H_502_3@ L_COLUMNVALUEVARCHAR2(4000);@H_502_3@
@H_502_3@ L_STATUS@H_502_3@ INTEGER@H_502_3@ ;@H_502_3@
@H_502_3@ L_COLCNTNUMBER:=0;@H_502_3@
@H_502_3@ L_SEPARATORVARCHAR2(1);@H_502_3@
@H_502_3@ L_DESCTBLDBMS_sql.DESC_TAB;@H_502_3@
@H_502_3@ P_MAX_LINESIZENUMBER:=32000;@H_502_3@
BEGIN@H_502_3@
@H_502_3@ --OPENFILE@H_502_3@
@H_502_3@ L_OUTPUT:=UTL_FILE.FOPEN(P_DIR,P_FILENAME,‘W’,P_MAX_LINESIZE);@H_502_3@
@H_502_3@
@H_502_3@ --DEFINEDATEFORMAT@H_502_3@
@H_502_3@ EXECUTE@H_502_3@ IMMEDIATE‘@H_502_3@ ALTER@H_502_3@ SESSION@H_502_3@ SET@H_502_3@ NLS_DATE_FORMAT=’’YYYY-MM-DDHH24:MI:SS’’’;@H_502_3@
@H_502_3@
@H_502_3@ --OPENCURSOR@H_502_3@
@H_502_3@ DBMS_sql.PARSE(L_THECURSOR,P_QUERY,DBMS_sql.NATIVE);@H_502_3@
@H_502_3@ DBMS_sql.DESCRIBE_COLUMNS(L_THECURSOR,L_COLCNT,L_DESCTBL);@H_502_3@
@H_502_3@
@H_502_3@ --DUMPTABLECOLUMNNAME@H_502_3@
@H_502_3@ FOR@H_502_3@ I@H_502_3@ IN@H_502_3@ 1..L_COLCNTLOOP@H_502_3@
@H_502_3@ UTL_FILE.PUT(L_OUTPUT,L_SEPARATOR||‘”’||L_DESCTBL(I).COL_NAME||‘”’);@H_502_3@
@H_502_3@ DBMS_sql.DEFINE_COLUMN(L_THECURSOR,I,L_COLUMNVALUE,4000);@H_502_3@
@H_502_3@ L_SEPARATOR:=‘,’;@H_502_3@
@H_502_3@ END@H_502_3@ LOOP;@H_502_3@
@H_502_3@ UTL_FILE.NEW_LINE(L_OUTPUT);@H_502_3@
@H_502_3@
@H_502_3@ --EXECUTETHEQUERYSTATEMENT@H_502_3@
@H_301_249@ @H_502_3@ L_STATUS:=DBMS_sql.@H_502_3@ EXECUTE@H_502_3@ (L_THECURSOR);@H_502_3@
@H_502_3@
@H_502_3@ --DUMPTABLECOLUMNVALUE@H_502_3@
@H_502_3@ WHILE(DBMS_sql.FETCH_ROWS(L_THECURSOR)>0)LOOP@H_502_3@
@H_502_3@ L_SEPARATOR:=‘’;@H_502_3@
@H_502_3@ FOR@H_502_3@ I@H_502_3@ IN@H_502_3@ 1..L_COLCNTLOOP@H_502_3@
@H_502_3@ DBMS_sql.COLUMN_VALUE(L_THECURSOR,L_COLUMNVALUE);@H_502_3@
@H_502_3@ UTL_FILE.PUT(L_OUTPUT,L_SEPARATOR||‘”’||@H_502_3@
@H_502_3@ TRIM(BOTH‘‘@H_502_3@ FROM@H_502_3@ REPLACE@H_502_3@ (L_COLUMNVALUE,’”’,’””’))||‘”’);@H_502_3@
@H_502_3@ L_SEPARATOR:=‘,’;@H_502_3@
@H_502_3@ END@H_502_3@ LOOP;@H_502_3@
@H_502_3@ UTL_FILE.NEW_LINE(L_OUTPUT);@H_502_3@
@H_502_3@ END@H_502_3@ LOOP;@H_502_3@
@H_502_3@
@H_502_3@ --CLOSECURSOR@H_502_3@
@H_502_3@ DBMS_sql.CLOSE_CURSOR(L_THECURSOR);@H_502_3@
@H_502_3@
@H_502_3@ --CLOSEFILE@H_502_3@
@H_502_3@ UTL_FILE.FCLOSE(L_OUTPUT);@H_502_3@
EXCEPTION@H_502_3@
@H_502_3@ WHEN@H_502_3@ OTHERS@H_502_3@ THEN@H_502_3@
@H_502_3@ RAISE;@H_502_3@
END@H_502_3@ ;@H_502_3@

猜你在找的Oracle相关文章