0
我想要做的是,在一個函數中填充一個表(用戶定義類型),然後做一個選擇該表。檢索內容用戶定義表
我做了如下:
1 /定義自定義類型:
create or replace TYPE "MVT_CD" AS OBJECT
(
ACCOUNTPK NUMBER(19,0),
ACCOUNTCODE VARCHAR2(255)
)
2 /定義該類型的表
create or replace TYPE "MVT_TAB_CD" AS TABLE OF MVT_CD
3 /述說我的功能該
create or replace FUNCTION OUTPUT_CD (BUS_DAY VARCHAR2, CODE_AGENCE VARCHAR2) RETURN CD_OUTPUT_TABLE AS
RETVAL CD_OUTPUT_TABLE := CD_OUTPUT_TABLE();
...
MVT_TAB MVT_TAB_CD := MVT_TAB_CD();
...
BEGIN
MVT_TAB.EXTEND;
MVT_TAB(MVT_TAB.COUNT) := MVT_CD(123, ' ');
MVT_TAB.EXTEND;
MVT_TAB(MVT_TAB.COUNT) := MVT_CD(456, ' ');
FOR I IN (
SELECT ACCOUNTPK, ACCOUNTCODE FROM MVT_TAB
)LOOP
RETVAL.EXTEND;
RETVAL(RETVAL.COUNT) := I.ACCOUNTPK|| I.ACCOUNTCODE;
END LOOP;
...
END
Variab我使用的名爲:MVT_TAB,我想做一個select來檢索它的containt,並在我的函數的另一部分中使用後者。
當我嘗試Comile我有:ORA-000942在該行:
SELECT ACCOUNTPK, ACCOUNTCODE FROM MVT_TAB
我想過使用BULK COLLECT
但我不知道如果我在好辦法。
那就是錯過了招!謝謝 –