|
|
Re: PLS-00497:cannot mix between single row and multi-row (BULK) in INTO LIST [message #625760 is a reply to message #625757] |
Tue, 14 October 2014 00:41 |
|
jhonnappier2007
Messages: 4 Registered: October 2014 Location: UAE
|
Junior Member |
|
|
Thank you Michel Cadot.
I had a little confusion there.
Now the code works fine. Could you please point me to some more reading on the same?
PS: Here is the corrected code. for those who may encounter similar problem
CREATE OR REPLACE TYPE userobj1 AS OBJECT
(
col1 NUMBER(13),
col2 NUMBER(13)
);
CREATE OR REPLACE TYPE userobj2 AS TABLE OF userobj1;
CREATE OR REPLACE TYPE num_array AS TABLE OF NUMBER(20);
DECLARE
rec2 userobj2 := userobj2();
v_arr num_array;
CURSOR cur IS
SELECT userobj1(LEVEL, LEVEL) FROM dual CONNECT BY LEVEL < 10;
BEGIN
OPEN cur;
FETCH cur BULK COLLECT
INTO rec2;
SELECT col2 BULK COLLECT INTO v_arr FROM TABLE(CAST(rec2 AS userobj2));
FOR i IN 1 .. v_arr.COUNT
LOOP
dbms_output.put_line(v_arr(i));
END LOOP;
CLOSE cur;
EXCEPTION
WHEN OTHERS THEN
IF cur%ISOPEN
THEN
CLOSE cur;
END IF;
dbms_output.put_line(SQLERRM);
RAISE;
END;
[Updated on: Tue, 14 October 2014 00:56] Report message to a moderator
|
|
|
|
|
|
|