2014-12-28 63 views
0

我是oracle數據庫的新手。試圖做一個簡單的函數,但它返回完整的單引號中的查詢。我不知道爲什麼。善意幫助。是的!它在函數編譯結束時也會提示「提示:nm參數沒有用過」我很困惑。在oracle函數中返回查詢

-- function to return a single letter grade 
 

 
create or replace function update_grade(nm number) return varchar2 
 
as 
 
grd varchar2(3); 
 
begin 
 
grd := 'select gradeid from grade where nm between marks_s and markks_e'; 
 
return grd; 
 
end; 
 

回答

0

您沒有執行任何查詢。您只是將查詢字符串分配給返回的結果變量。 我還沒有嘗試編譯它,但這樣的事情:

create or replace function update_grade(nm number) return varchar2 
    as 
    grd varchar2(3); 
    begin 
    SELECT gradeid INTO grd from grade where nm between marks_s and markks_e; 
    return grd; 
    end; 

在沒有數據的情況下,可以考慮添加處理的情況下:

EXCEPTION 
     WHEN NO_DATA_FOUND THEN 
     grd:= NULL; 
+0

三江源得多。我想這個問題是我正在使用試圖平衡選擇語句與聲明變量(grd) – Mani