Oracle pl-sql 이스케이프 문자(" " "의 경우)
실행하려고 할 때INSERT오라클의 스테이트먼트, 나는SQL Error: ORA-00917: missing comma로서의 값이 있기 때문에 에러가 발생합니다.Alex's Tea Factory내 안에서INSERT진술.
어떻게 탈출할 수 있을까?'?
이 문제를 피하려면 따옴표를 두 번 붙입니다.
INSERT INTO TABLE_A VALUES ( 'Alex''s Tea Factory' );
SQL에서는 다음과 같은 다른 인용구를 사용하여 인용문을 이스케이프합니다.
SELECT 'Alex''s Tea Factory' FROM DUAL
당신의 진술에 있는 모든 아포스트로피에 대해 걱정하는 대신.를 쉽게 사용할 수 있습니다.q' Notation.
예
SELECT q'(Alex's Tea Factory)' FROM DUAL;
이 표기법의 주요 컴포넌트는 다음과 같습니다.
q'이것은 표기법의 시작을 나타낸다.(완전히 이스케이프되는 문장의 시작을 나타내는 선택적 기호.- 알렉스의 티팩토리 (설명서 그 자체)
)'표기의 끝을 나타내는 아포스트로피가 있는 닫힘 괄호.
이렇게 표기법에 몇 개의 아포스트로피를 넣을 수 있는지 일일이 신경 쓰지 않고 모두 안전하게 처리할 수 있습니다.
중요 사항
사용했으니까(로 닫아야 합니다.)'기타 기호를 사용하는 것은 옵션입니다.예를 들어 다음 코드는 이전 코드와 동일하게 실행됩니다.
SELECT q'[Alex's Tea Factory]' FROM DUAL;
아래의 예시와 같이 EXCAPE를 사용할 수 있습니다.
'_' 와일드카드 문자는 정확히 하나의 문자와 일치시키는 데 사용되며, '%'는 0개 이상의 문자와 일치시키는 데 사용됩니다.이러한 문자는 SQL에서 이스케이프할 수 있습니다.
SELECT name FROM emp WHERE id LIKE '%/_%' ESCAPE '/';
PL/SQL 내부에서도 동일하게 동작합니다.
if( id like '%/_%' ESCAPE '/' )
이는 유사한 패턴에만 적용됩니다. 예를 들어 삽입물에서는 이스케이프할 필요가 없습니다.또는 %는 어쨌든 일반 문자로 사용됩니다.임의의 문자열에서는 ''만 이스케이프하면 됩니다.
SELECT q'[Alex's Tea Factory]' FROM DUAL
이 질문은 문자열을 연결하여 INSERT 문을 구축하고 있음을 의미합니다.문자열이 사용자 입력에서 파생된 경우 SQL 주입 공격에 노출되기 때문에 이는 좋지 않은 선택이라고 제안합니다.파라미터 마커를 사용하여 값을 마커에 바인딩하는 것이 좋습니다.를 검색하면Oracle parameter markers특정 실장 테크놀로지(C# 및 ADO, Java 및 JDBC, Ruby 및 Ruby DBI 등)에 대한 정보를 찾을 수 있을 것입니다.
공유하고 즐기세요.
다음은 Oracle DB에서 쉽게 이스케이프 및 char를 수행하는 방법입니다.
set escape '\\'
쿼리 내에서 다음과 같이 씁니다.
'ERRORS &\\\ PERFORMANCE';
언급URL : https://stackoverflow.com/questions/11717159/oracle-pl-sql-escape-character-for-a
'programing' 카테고리의 다른 글
| 외부 데이터 로드 시 콘솔에 XHR 로드가 완료되었습니다. (0) | 2023.04.05 |
|---|---|
| 카트가 비어 있는 경우 카트 페이지는 WooCommerce의 숍 페이지로 리다이렉트됩니까? (0) | 2023.04.05 |
| JSON에서 코멘트를 사용할 수 있습니까? (0) | 2023.04.05 |
| 파라미터를 angularjs 단위로 $http로 전달하려면 어떻게 해야 합니까? (0) | 2023.04.05 |
| 각도를 사용하여 리다이렉트JS (0) | 2023.04.05 |