的不是我在Oracle中簡單的類型聲明和一個簡單的函數:ORA-22163:左手和右手邊的集合是同一類型
TYPE col_sub_type IS TABLE OF VARCHAR2(50);
FUNCTION get_col_tab RETURN col_sub_type AS
l_type col_sub_type;
BEGIN
SELECT DISTINCT TABLE_NAME
BULK COLLECT INTO l_type
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME IN ('TABLE_1','TABLE_2');
RETURN l_type;
END;
的功能也因此它的包裝規格聲明可以用在包體中。
在我試圖在SQL語句中使用此功能的代碼之後,像這樣:
AND col.table_name NOT IN (SELECT * FROM TABLE(get_col_tab()))
包體和規格均編譯perfecly罰款,不過,當我試圖運行包我得到:
ORA-22163: left hand and right hand side collections are not of same type
ORA-06512: at "PACKAGE_NAME", line 25
ORA-06512: at "PACKAGE_NAME", line 236
第25行是:
RETURN l_type;
236線是SELECT語句開頭:
SELECT col.table_name
任何想法爲何這會發生?
在此先感謝!
您可以發佈,編譯和沒有足夠的在這裏工作了是什麼問題表明了誤差最小的例子。 – MT0
25行和236行並不總是表示錯誤在這些行中。也許錯誤經歷了這些線,所以如果你可以分享,如果不是整個包,只是包含25行和236行的完整塊。謝謝 – brenners1302