2010-04-27 3 views
0

У меня есть небольшая проблема с использованием oracle pl sql. У меня есть файл sql с некоторым курсором и т. Д., И обработка не сработает, но без деталей. У меня есть идея о проблеме (функция с параметрами), но я хотел бы видеть параметр для каждого вызова, чтобы его можно было отлаживать, чтобы точно увидеть, с каким параметром сбой. Это сообщение:plsql показать запрос

DECLARE 
* 
ERROR at line 1: 
ORA-01422: exact fetch returns more than requested number of rows 
ORA-06512: at line 165 
ORA-06512: at line 260 

Есть ли что-то, чтобы установить, чтобы иметь возможность видеть некоторые детали?

Я запускать мой, как этот пропитки

sqlplus -L $ORA_CONNECT @$FIC_REQ 

ответ

2

Эта ошибка возникает при попытке Select Into переменной, но селектов возвращает более одной строки.

Проверьте эти строки в вашем скрипте:
165 и 260 (как показано в StackTrace ошибки).


Для вывода ваших параметров dbms_output должно работать. Протестируйте следующий скрипт:

Set Serveroutput On 

Begin 
    dbms_output.put_line('Test'); 
End; 
/
+0

Как я уже сказал, у меня есть идея об ошибке, но мне нужно увидеть параметры функции. –

+0

Я попытался использовать dbms_output.put_line, но ничего не отобразил. В начале я установил serveroutput ON; –

+0

Это говорит о том, что вы не достигли точки, в которой вы отложили отладку, чтобы вы могли отправлять вызовы 'put_line' перед вызовом и в более ранние моменты. Также при запуске из SQL * Plus номера строк, указанные в ошибке, относятся к коду PL/SQL, а не к номерам строк самого файла SQL, поэтому вам нужно искать 165 и 260 строк после вашего 'declare' , –