2010-11-24 34 views
1

嘿傢伙,我有一個存儲過程,只輸出表的列。相反,我想'有''專欄''的學生。'作爲輸出。下面的例子。存儲過程輸出字符串和光標

CREATE OR REPLACE PROCEDURE active_students (arc in out sys_refcursor) 
     as 
     begin 
      open arc for select count(*) from student; 
     end; 

這產生

Count(*) 
30 

想它來閱讀

There are 30 students. 

回答

2

用途:

CREATE OR REPLACE PROCEDURE JSU4290M.active_students (arc in out sys_refcursor) 
AS 
BEGIN 

    OPEN arc FOR 
    SELECT 'There are '|| COUNT(*) ||' students.' AS col 
    FROM STUDENT; 

END; 

雙管(||)是Oracle(現在ANSI標準)連接字符串的方式。 Oracle會將整數值隱式轉換爲一個字符串。

+0

@DatabaseDummy:「隱藏」是什麼意思?您應該使用列名作爲參考,而不是結果集中的位置,因爲位置可能會改變。列名也可以改變,但它不那麼脆弱。 – 2010-11-24 04:17:00