>데이터 베이스 >MySQL 튜토리얼 >Oracle SQL INSERT 문에서 앰퍼샌드(&)를 이스케이프하는 방법은 무엇입니까?

Oracle SQL INSERT 문에서 앰퍼샌드(&)를 이스케이프하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-24 13:01:08379검색

How to Escape Ampersands (&) in Oracle SQL INSERT Statements?

Oracle SQL에서 앰퍼샌드를 사용한 대체 변수 프롬프트 방지

Oracle SQL Developer의 대체 변수 기능은 앰퍼샌드(&)가 포함된 데이터를 삽입할 때 문제를 일으킬 수 있습니다. 이로 인해 "대체 값을 입력하세요."라는 메시지가 나타나는 경우가 많습니다. 앰퍼샌드는 리터럴 문자가 아닌 변수 표시기로 해석됩니다.

URL 내에 앰퍼샌드가 나타나는 다음 예를 생각해 보세요.

<code class="language-sql">http://www.netvibes.com/subscribe.php?type=rss&url=</code>

이 URL을 올바르게 삽입하려면 앰퍼샌드를 이스케이프 처리해야 합니다. 한 가지 방법은 앰퍼샌드의 ASCII 코드를 나타내는 CHR(38) 함수를 사용하는 것입니다.

<code class="language-sql">INSERT INTO agregadores_agregadores (idagregador, nombre, url) 
VALUES (2, 'Netvibes', 'http://www.netvibes.com/subscribe.php?type=rss' || CHR(38) || 'url=');</code>

이것은 리터럴 앰퍼샌드를 해당 ASCII로 대체하여 대체 변수 충돌을 방지합니다.

또는 다음을 사용하여 대체 변수 동작을 전역적으로 비활성화할 수 있습니다.

<code class="language-sql">SET DEFINE OFF;</code>

이 명령을 실행한 후 앰퍼샌드는 모든 후속 SQL 문에서 리터럴 문자로 처리됩니다. SET DEFINE OFF은 현재 세션 내의 모든 향후 쿼리에 영향을 미친다는 점을 기억하세요. 따라서 나중에 대체 변수가 필요하면 SET DEFINE ON;을 사용하여 다시 활성화해야 합니다.

위 내용은 Oracle SQL INSERT 문에서 앰퍼샌드(&)를 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.