wie fetch-cursor-Wert in varchar2 in pl/sql
mir helfen, dies zu lösen, Fehler
29/5 PL/SQL: SQL Statement ignored
29/5 PLS-00394: falsche Anzahl von Werten in der IN-Liste einen HOLEN
Anweisung
(29 FETCH-El IN tsinfo; )
62/5 PL/SQL: SQL Statement ignored
62/5 PLS-00394: falsche Anzahl von Werten in der IN-Liste einen HOLEN
Anweisung
( 62 HOLEN lock_info IN lockinfo; -- ich möchte die Datenbank sperren Ergebnis dieser tsinfo)
CREATE or REPLACE PACKAGE final_package als
VERFAHREN final_procedure(var1 in varchar2, dbinfo out varchar2);
ENDE final_package;
/
CREATE or REPLACE PACKAGE BODY final_package IST
PROCEDURE final_procedure(var1 in varchar2, dbinfo out varchar2) IS
BEGINNEN
WENN var1 = 'a'
------ /* tablespaces name, Prozentsatz */----
DANN
ERKLÄREN
tsinfo varchar2(5000); ---- /* ich möchte tablespaces Ergebnis
diese tsinfo */----CURSOR El ist, wählen Sie ein.TABLESPACE_NAME als
Tablespace,round((1 - ((.BYTES-nvl(b.BYTES,0))/a.BYTES))*100,2)
ALS
Prozentsätze von (select TABLESPACE_NAME, sum(BYTES) BYTES aus
sys.dba_data_files group by TABLESPACE_NAME) ein,
(wählen Sie
TABLESPACE_NAME, sum(BYTES) BYTES from sys.dba_free_space
Gruppe von
TABLESPACE_NAME) b
wo
ein.TABLESPACE_NAME = b ist.TABLESPACE_NAME (+)
order by - ((.BYTES-b.BYTES)/ein.BYTES) desc;
BEGINNEN
FÜR each_data1 in El
SCHLEIFE
FETCH-El IN tsinfo; --- /* ich möchte tablespaces Ergebnis
diese tsinfo */---END LOOP;
In der NÄHE El;
ENDE;
---- /* Datenbank-lock-status */----
ELSIF-Anweisung var1 = 'b' DANN
ERKLÄREN
lockinfo varchar2(1500);
CURSOR lock_info WÄHLEN vh.sid locking_sid,
vw.sid waiter_sid,
vs. status,
vs. Programm program_holding,
vsw.Programm program_waiting
FROM v$lock vh,
v$lock vw,
v$session vs,
v$session vsw
WO(vh.id1, vh.id2) IN (SELECT id1, id2
FROM v$lock
WO request = 0
SCHNEIDEN
WÄHLEN Sie id1, id2
FROM v$lock
WO lmode = 0)
UND vh.id1 = vw.id1
UND vh.id2 = vw.id2
UND vh.request = 0
UND vw.lmode = 0
UND vh.sid = vs. sid
UND vw.sid = vsw.sid;
BEGINNEN
FÜR each_data in lock_info
SCHLEIFE
HOLEN lock_info IN lockinfo; -- ich möchte die Datenbank sperren führen
zu diesem tsinfoEND LOOP;
SCHLIEßEN lock_info;
ENDE;
END IF;
ENDE;
ENDE;
/
InformationsquelleAutor Suranga Premakumara | 2013-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den cursor El wählt 2 Werte:
Müssen Sie
FETCH
in 2 Variablen (oder in einen Satz mit 2 Feldern).Die Formatierung war so schrecklich, dass ich mich entschied, nicht den code Scannen für weitere Fehler.
Sie müssen sich entweder fügen Sie einen anderen parameter aus oder verketten Sie die beiden Werte (nutzen
||
zum verketten von strings).Tut Es umwandeln kann in einzelne varchar2-variable? Beispielsweise konvertieren Sie den cursor, um json-string?
InformationsquelleAutor Klas Lindbäck