728x90
치환 변수 사용

 

sql 파일 실행 결과를 출력할 때 sql 파일에 인자를 넣고 싶은 경우 치환 변수를 사용하면 됨.

 

먼저

sql 파일에는 인자값이 들어갈 곳에 치환 변수(&1 등)를 작성.

 

예시) sql 파일

set heading off feedback off pagesize 0 verify off;
select value from v$parameter where name = '&1';
exit;

 

이후 sql 파일을 실행 할 때, 아래와 같이 이용하면 됨.

SQL> @sql파일명 "인자값"

 

또는, sqlplus를 이용해 OS 단에서 sql 파일을 실행하고 싶을 경우

$ sqlplus -S / as sysdba @sql파일명 "인자값"

 

&1로 입력한 곳에 sqlplus의 마지막에 인자로 넣어준 인자값이 대입되어 실행됨.

 

사용 예시

 

쉘 스크립트 작성 시 input 파일에서 한 줄씩 단어를 읽고, 단어를 sql 파일에 인자로 넣고 싶을 때

PARAM_FILE="input.txt"

while IFS= read -r param || [ -n "$param" ]; do
  # 빈 줄 무시
  [ -z "$param" ] && continue

  # SQL 파일을 실행하여 해당 파라미터의 값을 조회합니다.
  VALUE=$(sqlplus -S / as sysdba @param_query.sql "$param")
  
done < "$PARAM_FILE"
728x90