我期待在Oracle中創建一個函數,我可以將值作爲字符串傳遞並返回一個列表。例如,我想有一個功能,我可以給它一本書的標題,並返回擁有該書的用戶列表。創建一個函數,可以返回列表項使用Oracle sql
我已經創建了下面的函數,其中包含我不確定如何解決的警告以及是否正確的解決方法。
CREATE OR REPLACE Function UsersForBooks
(name_in IN varchar(250))
RETURN varchar(250)
IS
listToReturn varchar(250);
cursor c1 is
SELECT username
FROM (GC_User NATURAL JOIN GC_Books)
NATURAL JOIN GC_BookOwnership
WHERE GC_Books.title = name_in
;
BEGIN
open c1;
fetch c1 into listToReturn;
close c1;
RETURN listToReturn;
END;
/
我以下面的方式調用我的函數,並不確定它是否正確。
SELECT * FROM UsersForBooks('The Da Vinci Code');
這是不正確的,但如果您告訴我們警告是什麼,以及在您打電話時得到了什麼輸出,將會有所幫助。 – 2013-04-24 22:39:30
Oracle沒有「列表」。你想要返回什麼,一個分隔字符串? – eaolson 2013-04-24 23:27:02
我正在有效地嘗試返回擁有某本書的用戶表。基本上我想要一個函數,其中一個值可以傳遞給SELECT語句,並返回這個select語句的結果,在這種情況下,這將是一個用戶表 – 2013-04-25 08:56:21