2010-06-24 7 views
0

Oracle 9i에서 10g로 업그레이드했고 10g가 아닌 9i 클라이언트에서 작동하는 데이터베이스 쿼리 만 업그레이드했습니다. 쿼리의 아무 것도 변경되지 않았습니다. 다음과 같은 오류가 발생합니다.Java JDBC Oracle 9i에서 10g로 업그레이드하십시오.

java.sql.SQLException: ORA-01036: illegal variable name/number 

무슨 일이 일어나는지 잘 모르겠습니다. 왜 더 이상 움직이지 않을까요? 이것은 약 3 ~ 4 개의 테이블을 조인하는 select 문입니다. 나는 내가 사용하고있는 숫자 인 setInt를 사용하여 변수를 전달하고 있는지 확인하고있다. diff'ing 테이블을 가입하는 유일한 방법은 내가 다른 찾을 수있는 하나의 테이블에있는 열에 내가 합류하는 것입니다 한 테이블에 번호 (12) 및 다른 숫자로 설정됩니다. 이 점이 다른 점이 있습니까? 쿼리는 여전히

+1

NUMBER 대 NUMBER (12)는 문제가되지 않습니다. NUMBER (12)는 단지 소수점 이하의 정밀도를 정의합니다. NUMBER에 대한 정밀도가 기본적으로 무엇인지 기억할 수 없습니다. –

+0

그래, 나는 이것에 관해 짐작했다. 나는 이것이 정말로 나의 지역이 아니기 때문에 이것을 던져 버렸다. 그리고 여기 주변의 아무도 시작하기위한 단서 또는 아이디어가 없다. 감사. – user16208

+1

함수를 보는 것이 도움이 될 수 있습니다. –

답변

0

문제는 준비된 명령문에서 다음 메소드 호출로했다하지 않은 경우

  • 은 바인드 변수-엿 인식 :

    ps.setEscapeProcessing(false); 
    

    은을 제거하고 지금은 잘 작동 . 오라클 10g 드라이버와 호환 가능하다고 생각하지 마십시오. 도와 주신 모든 분들께 감사드립니다.

  • 0

    이 생각 스프링 마음에 ... 두꺼비와 SQL 네비게이터에서 실행 :

    1. 당신이 JDBC 드라이버의 올바른 버전을 사용하고 있는지 확인하십시오. TOAD 등에서 쿼리가 작동한다고 했으므로 문제가 될 가능성이 큽니다.
    2. 는 데이터베이스가 큰 경우가 있음/없음 당신이있어 경험,

    또한 열 별칭 등으로 쿼리에 전에 갈 수있는 공정 방법을 어떤 ORACLE 키 단어를 사용하지 않는 확인 10g 환경이 안정적입니다. 내 권장 :

    1. 상태-계산을 다시 내장 된 작업에 대한주의 (많은 그물에있다) 생존 가이드를 읽기 통계에 대해 당신이 할 수있는만큼 배운다. 통계 변경으로 주요 쿼리 성능이 깨 졌으므로 12 일간의 재계약이있었습니다. 우리의 테스트는 12 일 간의 안정성 테스트를 허용하지 않았습니다. 이미
    관련 문제