PL/SQL 개발자의 앰퍼샌드 이스케이프
Oracle 데이터베이스에 대해 간단한 INSERT 문을 시도하고 있습니다.값 중 하나는 VARCHAR2 필드이며 삽입 문에는 앰퍼샌드가 포함되어 있습니다.이거 어떻게 하는 거지?다음과 같은 방법을 시도해 보았습니다.
- 설정된 이스케이프를 사용하여 & as \& 이스케이프
- set scan off (이로 인해 ORA-00922 누락 또는 잘못된 옵션 오류가 발생함)
- set define off (이로 인해 ORA-00922 누락 또는 잘못된 옵션 오류가 발생함)
다른 생각 있나요?
SQL 창 하단에는 대체 변수를 비활성화/활성화하는 버튼이 있습니다.
제가 해결한 방법은 다른 사람과 &을 탈출하는 것입니다.
예:
INSERT INTO Foo (Bar) VALUES ('Up && Away');
잘 작동합니다.모든 도움에 감사드립니다.
익숙해지는 데 시간이 걸리는 PL/SQL Developer의 기능 중 하나는 다양한 창 유형입니다.
이 중 하나는 명령 창으로, 기본적으로 SQL*Plus 에뮬레이터입니다.SQL*Plus 명령과 SQL을 실행할 수 있으므로SET ESCAPE,SET DEFINE그리고 정말로SET SCAN OFF저 창문에서 일하세요.
이런 거 먹어봤어요?
INSERT INTO tablex VALUES ('Sid ' || '&' || ' Nancy');
첫 번째 답변을 개선하자면, 당신의 문제는 PL/SQL Developer와 관련이 있습니다.PL/SQL Developer Command 창에서 블록을 실행하는 경우 SQL*Plus와 동일하게 작동하는 표준 SET DEFINE OFF도 사용할 수 있습니다.
아래의 콘캣은 제가 선택한 진술에서 한 것입니다.
select FUND_NM
FROM PERFORMANCE
WHERE upper(FUND_DESC) in ('My L&' ||'L FUNDS')
사용합니다chr(38)PL/SQL에 앰퍼샌드가 필요한 경우.
addr:= 'mysite.com/order.aspx?no=5678' || CHR(38) || 'id=947';
--above line gives you 'mysite.com/order.aspx?no=5678&id=947';
이것은 SQL Editor 문제일 뿐입니다.이 문제를 해결하려면 SET DEFINE OFF로 절차를 컴파일하기만 하면 됩니다. PL인 실행(서버에서 실행)은 이 문제에 직면하지 않습니다.
언급URL : https://stackoverflow.com/questions/7103715/escape-ampersand-in-pl-sql-developer
'programing' 카테고리의 다른 글
| 방법의 결과로 데이터 스냅샷 값을 반환하는 방법은 무엇입니까? (0) | 2023.07.16 |
|---|---|
| 해결됨 - Spring Boot Starter Mail - com.sun.activation.registics 클래스에 액세스하지 못했습니다.javax.activation 클래스의 LogSupport입니다.MimtypeFileTypeMap (0) | 2023.07.16 |
| ASP.NET 4.5 프로젝트를 위해 Visual Studio 2015와 함께 Grunt, Bower, Gulp, NPM 사용 (0) | 2023.07.16 |
| Github: 업스트림 분기를 포크로 가져옵니다. (0) | 2023.07.16 |
| C에서 스크린 메모리에 쓸 수 없습니다. (0) | 2023.07.16 |
