2015-09-18 84 views
1

我有我在使用PL/SQL中使用
標記時遇到困難的應用程序中使用的查詢。查詢是:如何在Dbms_output.put_line('');中使用<br>標記在PL/SQL Oracle?

SELECT LISTAGG(last_name, 'br') WITHIN group (ORDER BY last_name) 
into lastname from employees; 

DBMS_OUTPUT.PUT_LINE(lastname); 

輸出我得到的是:Abel br Ande br Baer br

輸出我想:
阿貝爾
安德
貝爾

+0

使用''嘗試;而不是「
」。 –

+0

@vkp:你確定這有效嗎?你有沒有鏈接到它的文檔?我只是試了一下,並沒有爲我工作......我不認爲Oracle對'
'有任何特殊處理......請鏈接到任何相關文檔,但是,想要學習新的東西:) – Ditto

+0

或者使用遊標循環通過'employees.lastname'調用'dbms_output.put_line'一次。 –

回答

2

「BR」 已經在Oracle內部沒有任何特殊含義,我是知道,請使用CHR(10)(即回車)。 (或CHR(10)+ CHR(13)如果在Windows工作)

1 with w_data as (select level id from dual connect by level <= 10) 
    2 select listagg (id, chr(10)) within group (order by id) 
    3* from w_data 
    SQL>/

    LISTAGG(ID,CHR(10))WITHINGROUP(ORDERBYID) 
    -------------------------------------------------------------------------------- 
    1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 
    9 
    10 


    1 row selected. 

注意如何顯示「1行選擇」,但事情被分解成單獨的線......我相信這是你的效果在之後?

[編輯]對不起,只是意識到你在PL/SQL ..這裏是在PL/SQL相同的測試查詢,通過DBMS_OUTPUT ...:

declare 
    lv_str varchar2(4000); 
    begin 

    with w_data as (select level id from dual connect by level <= 10) 
    select listagg (id, chr(10)) within group (order by id) 
    into lv_str 
    from w_data; 

    dbms_output.put_line (lv_str); 
    end; 
/

    "gg.sql" 15 lines, 259 characters 

    SQL> @gg 
    1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 
    9 
    10 

    PL/SQL procedure successfully completed. 
+0

感謝同上的答案...請讓我知道如何提高甲骨文的技能,因爲我是初學者 –

+0

閱讀此:http://tkyte.blogspot.ca/2012/08/the-keys-to-oracle html的 – Ditto

相關問題