programing

Oracle SQL 이스케이프 문자('&'의 경우)

iphone6s 2023. 3. 3. 17:07
반응형

Oracle SQL 이스케이프 문자('&'의 경우)

Oracle SQL Developer를 사용하여 SQL insert 문을 실행하려고 하면 "Enter substitution value" 프롬프트가 계속 생성됩니다.

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

위 '\'을 사용하여 쿼리의 특수 문자를 이스케이프하려고 했지만 여전히 앰퍼샌드 '&'를 피할 수 없어 문자열 치환이 발생합니다.

&는 의 디폴트값입니다.DEFINE치환 변수를 사용할 수 있습니다.나는 그것을 끄는 것을 좋아한다.

SET DEFINE OFF

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

|| chr(38) ||

이 솔루션은 완벽합니다.

정의 문자를 & 이외의 값으로 설정합니다.

정의 설정 ~create table blah(x varchar(20);blah(x) 값('blah&amp')에 삽입;
blah에서 *를 선택합니다.
x--------------------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

이스케이프가 비활성화되었거나 이스케이프 문자가 '\' 이외의 문자로 설정되어 있기 때문에 문제가 발생했을 수 있습니다.위의 문장은 이스케이프를 활성화하고 '\'로 설정합니다.


이전에 게시된 다른 답변은 원래 질문에 대한 답변이 아닙니다.그들은 모두 그 문제를 해결하지만 해결하지는 못한다.

당신의 요청 전에 이것을 추가하세요.

set define off;

언급URL : https://stackoverflow.com/questions/1137354/oracle-sql-escape-character-for-a

반응형