문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣ6FS07, 6FS07PS, 7FS02, 7FS02PS
문서번호ㅣTADTI096
개요
JOB을 생성할 때, Procedure, Function, 또는 일반 SQL 문장 안에 작은따옴표(')가 포함된 경우 적절히 이스케이프(escape) 처리가 이루어지지 않으면 오류가 발생할 수 있습니다.
본 문서에서는 JOB 생성 및 수정 시 쿼리 구문 내 작은따옴표(‘) 포함한 구문 처리 방법을 예시를 통해 안내합니다.
방법
작은따옴표(')는 문자열 리터럴(Literal)을 표현할 때 사용하는 기호입니다.
따라서 SQL 문장 안에서 작은따옴표를 표현하려면 두 번('') 연속해서 사용해야 합니다.
JOB 생성 시
❌ 잘못된 예시
다음 예시는 JOB 구문 내 dbms_output.put_line('ok') 문장에서 작은따옴표가 이스케이프 처리되지 않아 오류가 발생합니다.
SQL> DECLARE
job_no NUMBER;
BEGIN
DBMS_JOB.SUBMIT(job_no, 'dbms_output.put_line('ok');', SYSDATE, 'SYSDATE + 1');
END;
/
TBR-15146: PSM compilation error.
at line 4, column 47:
dbms_output.put_line('ok');
^^
✅ 올바른 예시 (작은따옴표 2개 사용)
SQL> DECLARE
job_no NUMBER;
BEGIN
DBMS_JOB.SUBMIT(job_no, 'dbms_output.put_line(''ok'');', SYSDATE, 'SYSDATE + 1');
END;
/위와 같이 작은따옴표를 두 개('')로 작성하면 정상적으로 JOB이 등록됩니다.
JOB 수정 시
TiberoStudio의 [Edit - Job] 기능을 통해 기존 JOB을 수정하는 경우에도, tbSQL과 동일한 문자열 이스케이프 규칙이 적용됩니다.
즉, JOB 생성 시뿐만 아니라 편집(수정) 시에도 작은따옴표를 두 개('')로 작성해야 합니다.
1. JOB 생성
2. 생성된 [JOB] 선택 후 오른쪽 키 선택 -> [Edit - Job] 선택
3. [What to execute] 탭에서 DEV로 문자열 수정
아래와 같이 JDBC-15146: PSM compilation error. 에러가 발생합니다.
4. 작은따옴표를 두 개('')로 작성
|