2010-11-10 88 views
2

我對Oracle SQL很陌生(雖然我已經寫了一些SQL),但在函數中嵌入簡單的SELECT語句時遇到了問題。這感覺就像SQL ABC,但我似乎無法得到它:(在Oracle用戶定義的函數中編寫select語句

認爲我使用的是PL-SQL

這是我到目前爲止有:

create or replace FUNCTION GET_GROUP_BY_ID RETURN VARCHAR2 
AS my_result 
BEGIN 

    SELECT fav_group.name 
    INTO my_result 
    FROM fav_group 
    WHERE fav_group.id = 12345 

    RETURN my_result; 

END GET_GROUP_BY_ID; 

由於我說,我已經在尋找對谷歌代碼示例試圖在上面的代碼變化了很多,但似乎無法得到它的權利

回答

11

用途:

CREATE OR REPLACE FUNCTION GET_GROUP_BY_ID 
RETURN VARCHAR2 AS 

    my_result FAV_GROUP.NAME%TYPE; 

BEGIN 

    SELECT fav_group.name 
    INTO my_result 
    FROM fav_group 
    WHERE fav_group.id = 12345; 

    RETURN my_result; 

END GET_GROUP_BY_ID; 

問題是my_result被用作變量,但從未聲明。

我使用%TYPE表示法來聲明變量,因此它使用與用於填充它的列相同的數據類型。如果列數據類型發生更改,則該變量將自動更改以適應 - 在對錶進行更改後不考慮數據類型問題,除非完全刪除該列。