Oracle内部加入收藏?
发布时间:2021-04-01 13:49:40 所属栏目:站长百科 来源:网络整理
导读:我想在下面的例子中插手表范例与其他表的荟萃 – 我有一个函数F_GetPendingFeeds,它返回feed_log范例的表荟萃. 我想插手这个返回的荟萃与个中一个表 – CREATE OR REPLACE PACKAGE BODY L_DemoPkgIS TYPE t_feedLog IS TABLE OF feed_log%ROWTYPE INDEX BY P
|
我想在下面的例子中插手表范例与其他表的荟萃 – 我有一个函数F_GetPendingFeeds,它返回feed_log范例的表荟萃. CREATE OR REPLACE PACKAGE BODY L_DemoPkg
IS
TYPE t_feedLog IS TABLE OF feed_log%ROWTYPE
INDEX BY PLS_INTEGER;
FUNCTION F_GetPendingFeeds
RETURN t_feedLog
IS
lo_feedLog t_feedLog;
BEGIN
SELECT feed_log_seq,processed_dt,processed_by,create_dt,created_by
BULK COLLECT INTO lo_feedLog
FROM feed_log
WHERE status_cd = 0;
RETURN lo_feedLog;
EXCEPTION
WHEN OTHERS THEN
--TODO: Log Exception
RAISE;
END F_GetPendingFeeds;
PROCEDURE P_ProcessFeed
IS
o_pendingFeed t_feedLog;
ln_totalRecords t_feedLog;
BEGIN
-- Get the list of pending feed ids
o_pendingFeed := F_GetPendingFeeds();
-- Check if new data is present for processing
IF o_pendingFeed.COUNT = 0 THEN
dbms_output.put_line('Feed processing failed. No data found.');
RETURN;
END IF;
SELECT COUNT(*)
INTO ln_totalRecords
FROM feed_details t1,table(o_pendingFeed) t2 --ERROR: ORA-22905: cannot access rows from a non-nested table item
WHERE t1.feed_log_seq = t2.feed_log_seq;
EXCEPTION
WHEN OTHERS THEN
--TODO: Log Exception
RAISE;
END P_ProcessFeed;
END;
我收到错误 – PL/SQL: SQL Statement ignored
PL/SQL: ORA-22905: cannot access rows from a non-nested table
item
请留意我想插手表 – FROM feed_details t1,table(o_pendingFeed) t2 --ERROR: ORA-22905: cannot access rows from a non-nested table item WHERE t1.feed_log_seq = t2.feed_log_seq; 办理要领在Oracle 12C之前,您只能从行使CREATE TYPE在处事器上建设的荟萃中举办选择,譬喻SQL> CREATE TYPE r_feedLog IS OBJECT (foo NUMBER,bar VARCHAR2(20)); SQL> CREATE TYPE t_feedLog IS TABLE OF r_feedLog; 然后从包中删除t_feedLog的声明. 行使Oracle 12C,可以从包类型中界说的PL / SQL表中举办选择. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

