집 >데이터 베이스 >MySQL 튜토리얼 >Oracle SQL INSERT 문에서 앰퍼샌드(&)를 이스케이프하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!