문제

Ok,이 비트의 모호한 질문,하지만 희망이 있는 사람이 나를 도울 수 있습니다.

시스템에서 일하고 있어요 구축 dynamic SQL 문자열 실행을 위해 내부에 저장되는 절차,그리고 일부는 dynamic SQL 열 별칭을 정의하는 자신이 실제로 값을 검색하에서 다른 테이블의 사용자 데이터를 생성합니다.

그래서 예를 들어,문자열은 다음과 같습니다;

SELECT table1.Col1 AS "This is an alias" FROM table1

이 잘 작동합니다.그러나,이 값을 사용하는 별칭에 대한 잠재적으로 포함될 수 있습는 따옴표 문자는 외부 따옴표입니다.나는 어쩌면출따옴표 안의 별칭에 어떻게든지만 운이 없었다는 방법을 알아 냈다.백슬래쉬로 작동하지 않고 사용하는 두 개의 큰따옴표 행에서 결과에서 이러;

SQL Error: ORA-03001: unimplemented feature
03001. 00000 -  "unimplemented feature"
*Cause:    This feature is not implemented.

은 어떤 경험과 함께 이 문제까?환호를 위해 어떠한 통찰도 사람이있다.

p.s.따옴표는 필요한 주위에 별명이기 때문에 공백을 포함할 수 있습니다.

도움이 되었습니까?

해결책

할 수 있습니 그냥 넣어 다른 문자는 대신 쌍따옴표 및 교체하는 것에 큰 따옴표 코드에서?

무언가 이것을 좋아한다:

SELECT table1.Col1 AS "This is |not| an alias" FROM table1

그럼 그냥 바꾸기|으로".

나는 그것을 알고의 해킹,하지만 난 어떤 생각할 수 없는 더 나은 솔루션...고 당신이 하는 무엇이 있는 해킹이 어쨌든."좋은"방법을 것을 선택하는 값과 열 이름을 별도로 연결에 당신의 코드입니다.는 것을 매우 깨끗합니다.

다른 팁

를 사용하여 Oracle 견적 운영자:

select q'#someone's quote#' from dual;

는'#'로 대체될 수 있는 모든 캐릭터

을 실행할 때 this:

select 'test"columnname"' from dual

Oracle 합을 반환합니다(예 Oracle-생성된 열 이름):

'TESTCOLUMNNAME'
--------------------------------
test"columnname

사실에는 오라클의 열 이름을 포함하지 않 내 큰따옴표는 나에게 오라클 아마도 나타낼 수 없습니다.

최선의 방법으로 지금까지 볼 수있는 스트립 큰따옴표로서의 데이터를 사용하기 전에 열 이름이 있습니다.슬프게도,는 것이 또한 필요로 할 것 같은 때 필터링할 선택 그 열이 나는 볼 수 없는 또 다른 방법이다.

아마도 유익한 지역을 조사하는 것으로 보는 견적 방법입니다.

내$quotedString=$dbh->quote($string);

이,두 개의 작은 따옴표는 실제로 중 하나처럼 보이는 따옴표는 출력:
select 1 as "University ''John Smith''" from dual;

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top