Oracle SQL Developer - Справка по отладке - PullRequest
2 голосов
/ 18 ноября 2010

Я пытаюсь отладить пакет в SQL Developer.Метод, который я пытаюсь отладить, принимает 2 параметра

PROCEDURE procedure_name (dblink IN CHAR, bDebug IN BOOLEAN DEFAULT FALSE) 

Когда я нажимаю на иконку «Отладка», он запрашивает входные данные, которые мне нужно дать для этой процедуры.Я даю

dblink:='linkname';
bDebug:=TRUE;

, но когда он начинает отладку, я вижу значение dblink как

 'linkname                                                   
 '

, т. Е. Linkname, много пробелов и затем заключительную цитату.поэтому, когда в коде я пытаюсь сделать это

`strSrc VARCHAR(120) := 'tablename'||dblink;`

, это дает мне ошибку, что буфер слишком мал, что имеет смысл.но почему SQL Developer делает это?как это исправить?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Я предполагаю, что ваше заполнение исходит из того, как SQL Developer определяет свою переменную для привязки (вероятно, она определяется как CHAR (4000)). На данный момент вы можете обойти это в своем тестовом коде, поместив trim () вокруг переменной dblink:

strSrc VARCHAR(120) := 'tablename'||trim(dblink);

Обратите внимание, что это обычно не требуется, если процедуре был передан литерал (или переменная CHAR правильного размера, VARCHAR и т. Д.), Как, вероятно, делает рабочий код.

0 голосов
/ 19 ноября 2010

В целях отладки создайте процедуру-оболочку, которая принимает параметр VARCHAR2, а затем передает его вашей процедуре; затем вы отлаживаете его в SQL Developer, вызывая вашу оболочку.

...