Как распечатать в хранимой процедуре оракула (для целей отладки)? - PullRequest
7 голосов
/ 01 марта 2012

Я пытаюсь отладить хранимую процедуру (Oracle).Я хочу напечатать некоторые переменные.

Я не знаю, что это за команда для печати (или где ее найти).Может кто-нибудь сказать мне, что это?

Спасибо

РЕДАКТИРОВАТЬ:

Это мой триггер:

create or replace
procedure bns_saa_confs_update_state (
  theID in varchar2
)
AS
begin
  UPDATE BNS_SAA_CONFIRMATIONS SET SentToWssStatus='T' WHERE ID=theID;
  commit;
end;

Iхочу распечатать ID

Ответы [ 2 ]

21 голосов
/ 01 марта 2012

Используйте функцию dbms_output.put_line():

declare
    my_var varchar2(20);
begin
    my_var := 'Hello World';
    dbms_output.put_line(my_var);
end;
/

Убедитесь, что у вас есть set serveroutput on при запуске из SQLPlus, или включите вывод при запуске из IDE. Некоторые разработчики создают функцию-обертку для упрощения отладки.

4 голосов
/ 01 марта 2012

Вы, вероятно, хотите пакет DBMS_OUTPUT, т.е.

DECLARE
  a INTEGER := 0;
BEGIN
  dbms_output.put_line( 'Starting value: ' || a );
  a := a + 1;
  dbms_output.put_line( 'Ending value: ' || a );
END;

Обратите внимание, что обычно вам нужно включить DBMS_OUTPUT в вашем клиентском приложении, прежде чем данные будут отображены. В SQL * Plus вам нужно будет

set serveroutput on;

перед выполнением хранимой процедуры для отображения данных после выполнения. Другие инструменты с графическим интерфейсом имеют разные подходы для включения DBMS_OUTPUT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...