I'm using PL/SQL Developer v10.0.5.1710 with Oracle 11g and win_32 client 11.2.0.
My PL/SQL code returns cursors with inner queries to retrieve collection fields using CAST MULTISET approach.
But when I inspect the cursor output and try to expand the collection field the PL/SQL Developer crashes.
The issue just happen with the IDE, because the expected return is right and our application consumes the cursor without any problem, but this issue makes hard to debug the output when we have this kind of queries.
This are the steps to reproduce using an example with similar output:
//Create the nested table used to return collection of values
CREATE OR REPLACE TYPE mytable_varchar AS TABLE OF VARCHAR2(32767);
Create our test procedure in a package, i.e pk_tests:
TYPE cursor_type IS REF CURSOR;
PROCEDURE test_cursor(o_cursor OUT cursor_type) IS
BEGIN
OPEN o_cursor FOR
SELECT ut.table_name,
CAST(MULTISET (SELECT ui.index_name
FROM user_indexes ui
WHERE ui.table_name = ut.table_name) AS mytable_varchar) index_names
FROM user_tables ut;
END test_cursor;
Now we create a Test window for our procedure test_cursor :
begin
pk_tests.test_cursor(o_cursor =>
_cursor);
end;
We expand the o_cursor variable and will see the two columns (TABLE_NAME and INDEX_NAMES).
If we click try to inspect the returned in a row of INDEX_NAMES column the PL/SQL Developer will close/crash without any other information.
If you need the file Debug.txt I also can provide it.
I hope this information help you to detect and fix it.
Thank you.
My PL/SQL code returns cursors with inner queries to retrieve collection fields using CAST MULTISET approach.
But when I inspect the cursor output and try to expand the collection field the PL/SQL Developer crashes.
The issue just happen with the IDE, because the expected return is right and our application consumes the cursor without any problem, but this issue makes hard to debug the output when we have this kind of queries.
This are the steps to reproduce using an example with similar output:
//Create the nested table used to return collection of values
CREATE OR REPLACE TYPE mytable_varchar AS TABLE OF VARCHAR2(32767);
Create our test procedure in a package, i.e pk_tests:
TYPE cursor_type IS REF CURSOR;
PROCEDURE test_cursor(o_cursor OUT cursor_type) IS
BEGIN
OPEN o_cursor FOR
SELECT ut.table_name,
CAST(MULTISET (SELECT ui.index_name
FROM user_indexes ui
WHERE ui.table_name = ut.table_name) AS mytable_varchar) index_names
FROM user_tables ut;
END test_cursor;
Now we create a Test window for our procedure test_cursor :
begin
pk_tests.test_cursor(o_cursor =>

end;
We expand the o_cursor variable and will see the two columns (TABLE_NAME and INDEX_NAMES).
If we click try to inspect the returned in a row of INDEX_NAMES column the PL/SQL Developer will close/crash without any other information.
If you need the file Debug.txt I also can provide it.
I hope this information help you to detect and fix it.
Thank you.