Ich habe den folgenden Code:DBMS_SQL.TO_REFCURSOR Äquivalent in Oracle 10g
procedure Replace(sUser in Varchar2,sNomTable in varchar2,sColonne in varchar2,sID in Varchar2,nbCharAlterer IN NUMBER) is
l_cursor NUMBER;
l_return NUMBER;
l_ref_cursor SYS_REFCURSOR;
TYPE t_tab IS TABLE OF VARCHAR2(4000);
l_tab t_tab;
l_tab_Id t_tab;
sChaine VARCHAR2(4000 CHAR);
sqlReq CONSTANT VARCHAR2(1000):= 'select ' || sId || ',' || sColonne || ' from ' || sUser || '.' || sNomTable ;
begin
--
l_cursor := DBMS_SQL.open_cursor;
DBMS_SQL.parse(l_cursor, sqlReq, DBMS_SQL.NATIVE);
l_return := DBMS_SQL.EXECUTE(l_cursor);
-- Connvert from DBMS_SQL to a REF CURSOR.
l_ref_cursor := DBMS_SQL.to_refcursor(l_cursor);
Hier bin ich die folgende Fehlermeldung erhalten:
pls 00302 component 'TO_REFCURSOR' must be declared
seit meiner Oracle Version 10g.
Eine Idee, wie Sie das Äquivalent in Oracle 10g tun?
Ok, ich denke es ist weil ich Oracle 10g benutze und to_refocursor nur für 11g Versionen und höher verfügbar ist. Irgendeine Idee, wie man das Äquivalent in Oracle 10g macht? – tabby
Ich glaube nicht, dass Sie von DBMS_SQL in RefCursor in Oracle 10g konvertieren können. Sie müssen in DBMS_SQL bleiben und alle Operationen dort vornehmen. Es ist möglich - es ist nur mehr Code, den Sie schreiben müssen. –
Wenn Sie von dbms_sql in native dynamische SQL in 10g wechseln möchten, warum starten Sie nicht mit nativen dynamischen SQL in erster Linie? Ihr Beispiel könnte ziemlich einfach konvertiert werden. – Boneist