Ich wollte den Wert einer bestimmten Variablen drucken, die sich in einem anonymen Block befindet. Ich verwende Oracle SQL Developer. Ich habe es versucht dbms_output.put_line
. Aber es funktioniert nicht. Der Code, den ich verwende, wird unten angezeigt.
SET SERVEROUTPUT ON
DECLARE
CTABLE USER_OBJECTS.OBJECT_NAME%TYPE;
CCOLUMN ALL_TAB_COLS.COLUMN_NAME%TYPE;
V_ALL_COLS VARCHAR2(500);
CURSOR CURSOR_TABLE
IS
SELECT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE='TABLE'
AND OBJECT_NAME LIKE 'tb_prm_%';
CURSOR CURSOR_COLUMNS (V_TABLE_NAME IN VARCHAR2)
IS
SELECT COLUMN_NAME
FROM ALL_TAB_COLS
WHERE TABLE_NAME = V_TABLE_NAME;
BEGIN
OPEN CURSOR_TABLE;
LOOP
FETCH CURSOR_TABLE INTO CTABLE;
EXIT WHEN CURSOR_TABLE%NOTFOUND;
OPEN CURSOR_COLUMNS (CTABLE);
V_ALL_COLS := NULL;
LOOP
FETCH CURSOR_COLUMNS INTO CCOLUMN;
V_ALL_COLS := V_ALL_COLS || CCOLUMN;
IF CURSOR_COLUMNS%FOUND THEN
V_ALL_COLS := V_ALL_COLS || ', ';
ELSE
EXIT;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE(V_ALL_COLS);
END LOOP;
CLOSE CURSOR_TABLE;
END;
Und ich bekomme die Ausgabe nur als anonymous block completed
.
oracle
plsql
oracle-sqldeveloper
988875
quelle
quelle
Antworten:
Sie müssen dbms_output aktivieren. In Oracle SQL Developer:
In SQL * Plus:
quelle
SQL Developer gibt den DBMS_OUTPUT-Text anscheinend nur aus, wenn Sie den Fensterbereich DBMS_OUTPUT explizit aktiviert haben.
Gehen Sie zu (Menü) ANSICHT -> Dbms_output, um den Bereich aufzurufen.
Klicken Sie auf das grüne Pluszeichen, um die Ausgabe für Ihre Verbindung zu aktivieren, und führen Sie dann den Code aus.
BEARBEITEN: Vergessen Sie nicht, die Puffergröße entsprechend der erwarteten Ausgabemenge einzustellen.
quelle
Stellen Sie zunächst die Serverausgabe ein
SET SERVEROUTPUT on
dannWechseln Sie zum Fenster DBMS-Ausgabe (Ansicht-> DBMS-Ausgabe).
Drücken Sie dann Ctrl+, Num den Server zu verbinden
quelle
Es gibt 2 Möglichkeiten:
oder
Öffnen Sie das Menü "Ansicht" und klicken Sie auf "DBMS-Ausgabe". Sie sollten ein DBMS-Ausgabefenster am unteren Rand des Arbeitsblatts erhalten. Sie müssen dann die Verbindung hinzufügen (aus irgendeinem Grund erfolgt dies nicht automatisch).
quelle
1) Gehen Sie zum Menü anzeigen.
2) Wählen Sie den Menüpunkt DBMS_OUTPUT.
3) Drücken Sie Ctrl+ Nund wählen Sie den Verbindungseditor.
4) Führen Sie den Befehl SET SERVEROUTPUT ON aus.
5) Führen Sie dann Ihr PL / SQL-Skript aus.
quelle
Ich habe Schließen des zweiten Cursors hinzugefügt. Es funktioniert und wird auch ausgegeben ...
quelle
Wählen Sie im Menü Ansicht und> DBMS-Ausgabe und
quelle
Wechseln Sie zum Fenster DBMS-Ausgabe (Ansicht-> DBMS-Ausgabe).
quelle