0
我有一個關於在plsql函數上返回數組的問題。 我已經發現了很多關於使用數組的信息Plsql返回關聯數組函數
但是我在一個應該返回數組的函數上掙扎。
來源的例子: http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites.htm#LNPLS99931
據我所知,從谷歌搜索周圍,一種方法來返回一個數組首先被創建表陣列分開,然後使用這種類型的功能的內部。
我實際上想完成的是返回一個在函數內部創建的數組。
不知道如果我很清楚但在這裏我有我的代碼:
CREATE OR REPLACE FUNCTION createChecksumArray(checksumNumber VARCHAR2)
RETURN textGroupArray
AS
..
TYPE textGroupArray IS TABLE OF VARCHAR2(30)
INDEX BY BINARY_INTEGER;
textGroups textGroupArray;
..
BEGIN
..
textGroups := textGroupArray();
..
(A LOOP)
-- add textgroup into the array
IF textGroup != 0 THEN
arrayCount := arrayCount + 1;
textGroups(arrayCount) := TRIM(textGroup);
END IF;
(END THE LOOP)
..
RETURN textGroups;
我首先做的代碼的功能外,測試如果陣列工作。通過輸出陣列測試的結果:
spaced text: 3536 2029 2712 3456 789
我無法設法返回在函數tho中聲明的數組。不知道這是否可能,所以問題是:這是可能的,如果是這樣,如何?我在這裏做錯了嗎?
我找不到在包含此特定主題的Stackoverflow上發佈的問題。但抱歉,如果我的搜索不好。
另外,如果您不喜歡我的發帖,請添加一個修改,以便我可以向您學習。
你好德米特里!感謝您的迴應。試圖使用你的代碼,但我絕對做錯了什麼.. http://pastebin.ca/3265839 –
@JimVercoelen對不起,我有一個錯誤(現在糾正)。正確的是'create package ... as'和'function .... is'。 – Dmitry
@JimVercoelen您的代碼有兩個錯誤:1)函數內部的一個變量與函數參數具有相同的名稱,2)您不需要行'textGroups:= textGroupArray();' – Dmitry