oracle
  • debugging
  • plsql
  • oracle-sqldeveloper
  • plsqldeveloper
  • 2010-11-18 5 views 2 likes 
    2

    SQL Developer에서 패키지를 디버깅하려고합니다. 내가 "디버그"아이콘을 클릭하면 내가 디버그에 노력하고 방법은이 매개 변수Oracle SQL Developer - 디버깅 도움말

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

    소요, 내가이 절차에 줄 필요가 입력을 요청합니다. 나는

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

    을 제공하지만 디버깅을 시작할 때, 나는 다음

    'linkname             
    ' 
    

    즉 LINKNAME로 DBLINK의 가치, 공간을 많이하고 종료 견적을 참조하십시오. 코드에서 나는 그것이 나 그 버퍼 에러 제공이

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

    을 할 때 그래서 의미가있는 작은이다. 하지만 SQL Developer가 그렇게하는 이유는 무엇입니까? 그것을 고치는 방법?

    +3

    매개 변수가'VARCHAR2' 대신'CHAR'로 선언 된 이유가 있습니까? 나는 그것이 패딩이 어디에서오고 있는지 의심 스럽다. –

    +0

    'VARCHAR' 대신'CHAR'로 선언 된 이유가 확실하지 않습니다. 하지만 생산에서, 그래서 내가 현재 디버깅을 위해 변경할 수 있다고 생각하지 ---- 내 유일한 관심사는 패딩입니다. –

    답변

    2

    SQL Developer가 바인드 할 변수를 정의하는 방법 (아마도 CHAR (4000)으로 정의하고 있음)에서 패딩이 발생한다고 생각합니다. 지금, 당신은 DBLINK 변수 중심으로) (트림을 넣어 테스트 코드에서이 문제를 해결 얻을 수 있어야합니다 :

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

    절차가 문자를 통과 한 경우이 일반적으로 필요하지 않을 것이라는 점을주의 (또는 올바른 크기의 CHAR 변수, VARCHAR 등)을 생성 할 수 있습니다.

    +0

    이미 트리밍 기능을 사용하고 있지만 코드를 수정해야했습니다. 이전에 코드는 이미 제작 중이므로 코드를 변경하고 싶지 않습니다. –

    0

    디버깅을 위해 VARCHAR2 매개 변수를 허용하는 래퍼 프로 시저를 작성한 후 프로 시저에 전달하십시오. 래퍼를 호출하여 SQL Developer에서 디버깅합니다.

    관련 문제