[sql] Oracle SQL 이스케이프 문자 ( ‘&’용)

Oracle SQL Developer를 사용하여 SQL 삽입 문을 실행하려고 시도하는 동안 “대체 값 입력”프롬프트가 계속 생성됩니다.

insert into agregadores_agregadores
(
 idagregador,
 nombre,
 url
)
values
(
 2,
 'Netvibes',
 'http://www.netvibes.com/subscribe.php?type=rss\&url='
);

위의 ‘\’를 사용 하여 쿼리에서 특수 문자를 이스케이프 하려고 시도 했지만 여전히 앰퍼샌드 ‘&’를 피할 수 없어 문자열 대체가 발생합니다.



답변

&는 대체 변수를 사용할 수있는 DEFINE의 기본값입니다. 나는 그것을 사용하여 끄고 싶다.

정의 설정 해제

그러면 탈출이나 CHR (38)에 대해 걱정할 필요가 없습니다.


답변

|| chr(38) ||

이 솔루션은 완벽합니다.


답변

정의 문자를 & 이외의 것으로 설정하십시오.

SET DEFINE ~
blah 테이블 생성 (x varchar (20));
blah (x) 값에 삽입 ( 'blah & amp');
blah에서 *를 선택하십시오.

엑스
--------------------
blah & amp


답변

insert into AGREGADORES_AGREGADORES (IDAGREGADOR,NOMBRE,URL)
values (2,'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss' || chr(38) || 'amp;url=');


답변

SELECT 'Free &' || ' Clear' FROM DUAL;


답변

select 'one'||'&'||'two' from dual


답변

진짜 대답은 이스케이프 문자를 ‘\’로 설정해야한다는 것입니다. SET ESCAPE ON

이스케이프가 비활성화되었거나 이스케이프 문자가 ‘\’가 아닌 다른 것으로 설정 되었기 때문에 문제가 발생했을 수 있습니다. 위의 문은 탈출있게 하고 그것으로 ‘\’로 설정합니다.


이전에 게시 된 다른 답변 중 실제로 원래 질문에 대한 답변이 없습니다. 그들은 모두 문제를 해결하지만 해결하지는 않습니다.