DBMS_OUTPUT не работает в процедуре SQL Developer [duplicate]

A NullReferenceException бросается, когда мы пытаемся получить доступ к свойствам нулевого объекта или когда значение строки становится пустым, и мы пытаемся получить доступ к строковым методам.

Например:

  1. При использовании метода string пустой строки:
    string str = string.Empty;
    str.ToLower(); // throw null reference exception
    
  2. Когда свойство нулевого объекта доступно:
    Public Class Person {
        public string Name { get; set; }
    }
    Person objPerson;
    objPerson.Name  /// throw Null refernce Exception 
    
83
задан 988875 25 October 2011 в 10:44
поделиться

7 ответов

Вам нужно включить dbms_output. В Oracle SQL Developer:

  1. Показать окно вывода СУБД (View-> DBMS Output).
  2. Нажмите кнопку «+» в верхней части окна вывода Dbms и затем выберите открытое соединение с базой данных в открывшемся диалоговом окне.

В SQL * Plus:

 SET SERVEROUTPUT ON
162
ответ дан Klas Lindbäck 27 August 2018 в 01:22
поделиться
DECLARE

  CTABLE USER_OBJECTS.OBJECT_NAME%TYPE;
  CCOLUMN ALL_TAB_COLS.COLUMN_NAME%TYPE;
  V_ALL_COLS VARCHAR2(5000);

  CURSOR CURSOR_TABLE
    IS
    SELECT OBJECT_NAME 
    FROM USER_OBJECTS 
    WHERE OBJECT_TYPE='TABLE'
    AND OBJECT_NAME LIKE 'STG%';

  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;

    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;
   close CURSOR_COLUMNS ;
    DBMS_OUTPUT.PUT_LINE(V_ALL_COLS);
    EXIT WHEN CURSOR_TABLE%NOTFOUND;
  END LOOP;`enter code here`
  CLOSE CURSOR_TABLE;

END;

Я добавил Close второго курсора. Он работает и получает выход, а также ...

0
ответ дан Aelios 27 August 2018 в 01:22
поделиться

выберите «Вид» -> «DBMS_Output» в меню и

0
ответ дан Bhadra 27 August 2018 в 01:22
поделиться

Сделать вывод сервера в первую очередь

  1. SET SERVEROUTPUT on, затем
  2. Перейти к окну вывода СУБД (View-> DBMS Output)
  3. затем нажмите Ctrl + N для подключения сервера
5
ответ дан mx0 27 August 2018 в 01:22
поделиться

SQL Developer, кажется, выводит только текст DBMS_OUTPUT, когда вы явно включили оконную панель DBMS_OUTPUT.

Перейдите в (Меню) VIEW -> Dbms_output, чтобы вызвать панель.

Нажмите знак «Зеленый плюс», чтобы включить вывод для вашего соединения, а затем запустите код.

EDIT: не забудьте установить размер буфера в соответствии с ожидаемым количеством вывода.

16
ответ дан Ollie 27 August 2018 в 01:22
поделиться

Существует еще одна опция:

set serveroutput on format wraped;

или

Откройте меню «view» и нажмите «dbms output». Вы должны получить окно вывода dbms в нижней части рабочего листа. Затем вам нужно добавить соединение (по какой-то причине это не делается автоматически).

3
ответ дан Spudley 27 August 2018 в 01:22
поделиться

Перейдите в окно вывода СУБД (View-> DBMS Output).

0
ответ дан user2001117 27 August 2018 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: