<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鮑國(guó)鈺的博客
    謀事在人成事在天
    posts - 5,  comments - 6,  trackbacks - 0

     




    -- 建立存儲(chǔ)過程
    CREATE OR REPLACE PROCEDURE SQL_TO_CSV

        (

            P_QUERY 
    IN VARCHAR2,                        -- PLSQL文

            P_DIR 
    IN VARCHAR2,                          -- 導(dǎo)出的文件放置目錄

            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;
    /

    -- 創(chuàng)建存放文件的目錄
    CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\';


    -- 執(zhí)行塊
     begin

        sql_to_csv(
    'select * from au_jxs ','MYDIR','EXAMPLE.CSV');

     
    end;
    /

     

    注意:生成的文件名,定義的directory名字要字母大寫。

    posted on 2011-09-13 17:07 鮑國(guó)鈺 閱讀(6547) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    <2011年9月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    常用鏈接

    留言簿

    隨筆檔案

    文章分類

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: a高清免费毛片久久| 五月天婷婷精品免费视频| 亚洲国产视频网站| 亚洲色无码国产精品网站可下载| 亚洲av无码一区二区三区天堂| fc2成年免费共享视频网站| 免费在线观看的黄色网址| 亚洲午夜久久久影院| 亚洲伊人久久大香线焦| 日日摸夜夜添夜夜免费视频 | 天堂在线免费观看中文版| 亚洲Aⅴ无码一区二区二三区软件| 久久久久久a亚洲欧洲aⅴ| 亚洲欧洲精品一区二区三区| 亚洲风情亚Aⅴ在线发布| 无码国产精品一区二区免费3p| 成人片黄网站色大片免费| 国产亚洲精久久久久久无码77777| 亚洲三级视频在线| 男女一边摸一边做爽的免费视频| 久久久久国产精品免费免费搜索 | 亚洲中文字幕无码专区| 亚洲一区免费在线观看| 最近免费中文字幕大全| 色哟哟国产精品免费观看| 亚洲AV天天做在线观看| 免费无码又爽又黄又刺激网站| 成人免费午夜无码视频| 亚洲av最新在线网址| 成人在线免费视频| 亚洲午夜视频在线观看| 成人免费观看男女羞羞视频| 亚洲VA成无码人在线观看天堂| 亚洲免费福利在线视频| 亚洲午夜精品久久久久久人妖| 性xxxx视频播放免费| 国产免费久久久久久无码| 亚洲国产精品久久丫| 亚洲区小说区图片区| 免费国产污网站在线观看不要卡| 久久精品国产亚洲夜色AV网站|