2013-11-19 2 views
0

У меня есть хранимая процедура и поставить некоторые отладочные сообщения, какпечать журналов в db2 хранимой процедуре

call dbms_output.put ('calling clean up on <tableName>'); 

при вызове процедуры, я не вижу эту строку. Я использую студию данных Aqua для своей работы. Я также сделал следующее при вызове SP

набор SERVEROUTPUT на @ и установить SERVEROUTPUT на

но получаю сообщение об ошибке, как

An unexpected token "[email protected]" was found following "set serveroutput ". Expected tokens may include: "=" 

Можете ли вы предложить о том, как увидеть заявления, которые я Я помещаю как-то журналы в SP? Я использую «AquaData Studio - 7.0.39»

+0

http://www.aquafold.com/aquadatastudio/db2_sql_debugger.html ---- http://publib.boulder.ibm.com/infocenter/idm/v2r1/index.jsp?topic=/com. У ibm.debug.spd.doc/themes/cbsovrv.html –

ответ

0

set serveroutput не является оператором SQL, поэтому нет смысла в Aqua Data Studio или любом другом инструменте, кроме процессоров командной строки IBM DB2.

Что такое dbms_output.put does is сохраняет строку во внутреннем массиве в модуле dbms_output. Инструменты DB2 получают доступ к этому массиву и распечатывают его содержимое на экране после выполнения хранимой процедуры.

Вы можете каким-либо образом моделировать такое же поведение в Aqua Data Studio, создав обработчик исключений в своей хранимой процедуре, где вы используете dbms_output.get_lines для возврата массива строк, затем постройте курсор из этого массива с помощью unnest() и верните курсор в вызывающее приложение (Aqua).

Возможно, было бы проще просто создать собственную хранимую процедуру регистрации, выполнив автономную транзакцию, которая будет вставлять записи журнала в таблицу базы данных, которую вы можете запросить, когда это необходимо.

+0

есть установленный клиент db2 .. выглядит так, как будто он будет работать – user1588737

+0

Просто имейте в виду, что если ваша хранимая процедура вызывает исключение и откат, содержимое 'dbms_output Буфер будет потерян – mustaccio

Смежные вопросы