2008-10-20 3 views
1

OS 언어와 다른 데이터 정렬로 Oracle 데이터베이스를 사용하고 있습니다. ODBC 드라이버를 사용하여 데이터베이스에 액세스하고 있습니다. 데이터베이스의 데이터 정렬로 지원되는 특수 비 ASCII 문자가 포함 된 구문 (예 : "select * from x where =?")을 준비 할 때 해당 문자로 데이터 행을 찾습니다. SQL 문자열에서 인수로 직접 select를 실행하면 데이터 행을 찾을 수 없습니다.Oracle ODBC를 사용하여 준비된 명령문 대 직접 명령문의 차이점

답변

1

내 생각에는 순수한 추측이지만 클라이언트 컴퓨터가 인수로 SQL 문자열을 올바르게 인코딩하지 않았기 때문일 수 있습니다. 클라이언트가 DB 데이터 정렬 이외의 다른 지역 설정으로 설정된 경우 Oracle에 전송되는 select 문을 포함하는 문자 배열에 원래의 펑키 문자가있는 "올바르지 않은"바이트가 포함되어 있다고 생각합니다. 오라클은 이것을 일부로 해석합니다 (행을 찾지 못하게 함).

올바르게 작동하기 때문에 매개 변수화 된 접근 방식을 사용할 수없는 이유가 있습니까?

+0

결국 매개 변수화 된 접근 방식을 사용하여 쿼리를 구현해야합니다. 빠른 수정이 필요한지 알고 싶습니다. 감사! – vividos