2010-11-18 15 views
2

SQL Developer'da bir paketle hata ayıklamaya çalışıyorum. i "ayıklama" ikonuna tıkladığınızda i ayıklama çalışıyorum yöntem 2 parametreleriOracle SQL Developer - Hata ayıklama için yardım

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

alır, bu ben bu prosedüre vermek gerekir girişler için sorar. I

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

vermek için, ama ayıklamayı başladığında, sonra

'linkname             
' 

yani linkname olarak dblink değerini, çok sayıda aksesuar ve bitiş alıntı bkz. Kod ne zaman ben bu arabellek küçük olduğu için hata olduğunu verir, bu mantıklı bir hata verir. ama SQL Developer neden böyle yapıyor? nasıl düzeltilir?

+3

Parametrenin "VARCHAR2" yerine "CHAR" olarak bildirilmesinin bir nedeni var mı? Yastığın nereden geldiğini sanıyorum. –

+0

Neden "VARCHAR" yerine "CHAR" olarak bildirildiğini bilmiyorum. Ama onun üretimde, bu yüzden mevcut hata ayıklama için değiştirebileceğimi düşünmüyorum ---- tek endişem dolgu. –

cevap

2

Dolgunlamanızın, SQL Developer'ın değişkeni tanımlamaktan nasıl kaynaklandığını tahmin ediyorum (muhtemelen bir CHAR (4000) olarak tanımlanıyor). Şimdilik, dblink değişken civarında) (kesim koyarak test kodunda Bunu aşmanın mümkün olmalıdır:

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

prosedür değişmez geçirildi eğer bu normalde gerekli olmaz Not (veya Üretim kodu gibi büyük olasılıkla CHAR değişken, bir VARCHAR, vb), büyük olasılıkla yapıyor.

+0

Zaten kırpma işlevini kullanıyorum ama bunun için kodu değiştirmem gerekiyordu. Daha önce de söylediğim gibi, kod zaten üretim aşamasındadır ve kodu değiştirmek istemiyorum. –

0

Hata ayıklama amacıyla, bir VARCHAR2 parametresini kabul eden bir sarıcı yordamı oluşturun, ardından yordamınıza aktarın; daha sonra sarıcınızı arayarak SQL Developer'da hata ayıklayın.