x.509
x.509

Reputation: 2235

Oracle SQL Developer - Help for debugging

I am trying to debug a package with in the SQL Developer. The method that i am trying to debug takes 2 parameters

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

When i click on "Debug" icon, it asks for inputs that i need to give to this procedure. I give

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

but when it starts debugging, I see the value of dblink as

 'linkname                                                   
 '

i.e. linkname, lots of spaces and then the ending quote. so when in code i try to do this

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

it gives me error that buffer is to small, which makes sense. but why SQL Developer is doing so? how to fix it?

Upvotes: 2

Views: 2695

Answers (2)

Jeffrey Kemp
Jeffrey Kemp

Reputation: 60262

For debugging purposes, create a wrapper procedure that accepts a VARCHAR2 parameter, then passes it to your procedure; then you debug it in SQL Developer by calling your wrapper.

Upvotes: 0

Craig
Craig

Reputation: 5820

I am guessing your padding is coming from how SQL Developer is defining its variable to bind with (it is probably defining it as a CHAR(4000)). For now, you should be able to get around this in your test code by putting trim() around the dblink variable:

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

Note that this would normally not be needed if the procedure was passed a literal (or a correctly sized CHAR variable, a VARCHAR, etc), like the production code is probably doing.

Upvotes: 2

Related Questions