| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.tools -> REF CURSOR in SP problem
I'm creating a package as follows:
CREATE OR REPLACE PACKAGE CIWeb_Search AS
TYPE SearchRec IS RECORD (
claimnum VARCHAR2(20),
dateOfLoss DATE,
fName
VARCHAR2(20),
mName
VARCHAR2(20),
lName
VARCHAR2(20),
street
VARCHAR2(20),
city
VARCHAR2(20),
state
VARCHAR2(20),
country
VARCHAR2(20),
zip
VARCHAR2(20)
);
TYPE SearchRecTableType IS TABLE OF SearchRec;
TYPE SearchCurTyp IS REF CURSOR;
PROCEDURE search_name_lname(
lname VARCHAR2,
offset INTEGER,
searchCnt INTEGER,
searchCursor IN OUT SearchCurTyp);
PROCEDURE search_name_lname(
lname VARCHAR2,
offset INTEGER,
searchCnt INTEGER,
searchCursor IN OUT SearchCurTyp) IS
searchRow SearchRec;
j INTEGER;
maxSelectCnt INTEGER ;
searchTable SearchRecTableType := SearchRecTableType();
CURSOR lname_cursor IS
SELECT DISTINCT w.CLAIM_NUM, w.DATE_OF_LOSS_DT, n.FNAME, n.MNAME,
n.BUSINESS_OR_LNAME, n.STREET1, n.CITY, n.COUNTRY, n.STATE, n.ZIP
FROM CWS.WFM_WORK_ITEM w, CWS.CLM_NAME n
WHERE w.WORK_ID = n.WORK_ID AND n.BUSINESS_OR_LNAME LIKE lname
ORDER by n.BUSINESS_OR_LNAME ASC;
BEGIN
if searchCnt<= 100 then
maxSelectCnt:= searchCnt;
else
maxSelectCnt:=100;
end if;
OPEN lname_cursor;
IF offset = 0 THEN
FOR i in 0..maxSelectCnt - 1 LOOP
FETCH lname_cursor INTO searchRow;
EXIT WHEN lname_cursor%NOTFOUND;
searchTable.extend();
searchTable(i+1):=searchRow;
END LOOP;
ELSE
j:=0;
WHILE j < offset LOOP
FETCH lname_cursor INTO searchRow;
EXIT WHEN lname_cursor%NOTFOUND;
j:=j+1;
END LOOP;
IF j < offset then
RETURN;
END IF;
FOR i in 0..maxSelectCnt - 1 LOOP
FETCH lname_cursor into searchRow;
EXIT WHEN lname_cursor%NOTFOUND;
searchTable.extend();
searchTable(i+1):=searchRow;
END LOOP;
END IF;
OPEN searchCursor FOR
SELECT * FROM TABLE(searchTable);
END;
END CIWeb_Search;
This gets created fine but when I go into SQL Plus and do:
variable x refcursor
exec ciweb_search.search_name_lname('SMITH', 0, 10, :x)
I get the following error:
ERROR at line 1:
ORA-00600: internal error code, arguments: [15419], [severe error during
PL/SQL execution], [], [],
[], [], [], []
ORA-06544: PL/SQL: internal error, arguments: [pfrrun.c:pfrbnd1()], [],
[], [], [], [], [], []
ORA-06553: PLS-801: internal error [0]
Does anyone see what I'm doing wrong? Received on Tue Aug 07 2001 - 13:35:23 CDT
![]() |
![]() |