2016-07-13 3 views
0

SQL 개발자를 사용하여 Oracle 데이터베이스를 쿼리하고 있습니다.앰퍼샌드 &를 무시하는 Oracle에서 SQL의 문자열 리터럴을 검색하는 방법이 있습니까?

SQL에서 앰퍼샌드가 포함 된 문자열을 검색 할 때 현재 "set define off;"명령을 실행해야합니다. 'define'변수로 취급하지 않기 위해 쿼리를 선행합니다. 예를 들어

:

set define off; 
select 'Dungeons&Dragons' from dual; 
set define on; 

작품은 예상대로하고 '&는'리터럴 문자로 처리됩니다. 그러나 문자열을 리터럴로 표시하여이를 수행 할 수있는 방법이 있는지 궁금합니다.

select l'Dungeons&Dragons' from dual; 

또는 그 라인을 따라 무엇인가가 있습니다.

+0

나는 그것이 최선의 방법이라고 생각합니다. 이스케이프 문자 ('\')를 사용할 수 있습니다 (예 : 'Dungeons \ & Dragons'하지만 그만한 가치는없는 것 같습니다. http://stackoverflow.com/questions/12961215/escaping-ampersand-character-in-sql-string –

+1

다른 대안은 대답의 두 번째 옵션을 참조하십시오. http://stackoverflow.com/a/118210/121544 –

+1

가능한 복제본 [SQL Plus에서 실행되는 SQL 스크립트에서 앰퍼샌드를 무시하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/118190/how-do-i-ignore-ampersands-in-a-sql-script-running- from-sql-plus) –

답변

0

SQL 개발자 시작시 SET DEFINE OFF 인 login.sql 스크립트를 사용하십시오. 도구 - 환경 설정 - 데이터베이스로 이동하고 연결 시작 스크립트의 파일 이름에서 새 login.sql 파일을 선택하십시오.

0

너무 다른 문자에 프롬프트 문자를 설정할 수 있습니다

SET DEFINE '^' 

그리고 정상과 같은 쿼리를 실행합니다.