2009-07-14 2 views
0

Oracle 9i에서 10g로 마이그레이션 된 응용 프로그램에서 흥미로운 문제가 발생했습니다.
이전에는 오라클 레코드 세트가 필드를 큰 따옴표로 캡슐화했기 때문에 필드에 큰 따옴표가 포함되어있을 때 문제가있었습니다.Oracle 10g는 자동으로 레코드 세트에서 큰 따옴표를 이스케이프합니까?

예 : "필드 1"|| "FIELD2"|| "필드"Y "3"|| "입력란 4"10g로의 이동 이후

, 나는 오라클 클라이언트 측 드라이버가 분석하고 있다고 판단 이중 따옴표를 사용하여 바꾸기 "

불행히도 저는 제 이론을 테스트 할 수있는 오래된 9i 환경이 없습니다.

내 이론이 사실이라면 비슷한 행동을했거나 유효성을 검사 할 수 있습니까?

+0

큰 따옴표는 Oracle에서 쿼리의 식별자 이름을 구분하는 데 사용됩니다. "EMP"에서 "EMPNO"를 선택하십시오. 이 표현식은 유효한 SQL의 일부로 보이지 않습니다. 명확성을 위해 여분의 공백이 있음 : "field1"|| "field2"|| "필드"Y "3"|| "field4"- 뭔가 빠졌습니다. –

+0

내가 게시 한 것은 레코드 세트에서 VB로 반환되는 쿼리의 결과입니다. 드라이버가 큰 따옴표를 이스케이프하고 있는지 확인하려고합니다. 이 작업을 수행하는 내 애플리케이션 코드에 대한 어떠한 증거도 찾을 수 없습니다. – bitstream

답변

0

이것은 신기한 행동입니다. NLS_xx environment variables을 확인할 수 있습니까? 일부 NLS_xx 변수는 문자를 변환 할 수 있습니다. 예를 들어 NLS_LANG는 클라이언트의 라틴 문자 세트의 acute를 서버의 us2ascii 문자 세트로 변환 할 수 있습니다.

무엇이 진행되고 있는지 확인하려면 trace Net connections으로 시도하십시오. 당신은 모든 것이 다른쪽으로 움직이는 것을 보게 될 것입니다. 주의하십시오.

관련 문제