Shell 에서 sql 스크립트 실행 시키기


pl/sql을 작성하여 sql 스크립트로 만들어 진 것을 Shell을 통해 실행 시키고 싶을 때가 있을 것입니다.

지금부터 shell에서 sql을 실행하는 방법에 대해 알아보기로 하겠습니다.


다음과 같이 sql문이 있다고 가정해 봅시다.


####proc_script.sql#####

         set echo on 

         whenever sqlerror exit 1

         whenever oserror exit 2

         exec test_func;

         commit;

         exit


sql문을 Shell에서 어떻게 실행 시키는지 예제를 보면서 확인해 보겠습니다.


####sql_exec.sh#####

         sqlplus -s userrob@db1/passwrob< proc_script.sql

         RETVAL=$? 

         echo $RETVAL 

         echo "proc_script"


orcle client 와 sqlplus가 설치가 되어있어야 위에 쉘을 실행 할 수 있습니다.


위와같이 쉘에서 sql을 실행하는 방법에 대해 알아봤습니다.

반응형

Shell Script( 쉘 스크립트 ) while 문 사용법, 조건식



while 문 기본 사용 법




쉘에서 while문을 사용 시 조건 식이 문자로 되어있어 다소 어려움을 겪을 수 있습니다.

예를 들어 ( <, >, = ) 기호가 ( -eq, -lt ) 등 다르게 표기 되고 있기 때문입니다.

일단 while문 기본 형식 부터 알아보겠습니다.


 while [ 값1 조건식 값2 ]

 do

   수행문

   수행문

 done 



while 문과 조건 사이에 띄어 쓰기를 주의해서 작성 하셔야 에러 없이 동작합니다.

다음은 while문을 활용 해서 1~4까지 출력하는 간단한 예를 보겠습니다.


#! /bin/ksh


i=1


while [ $i -lt 5 ]

do

        echo $i

        i=$(($i+1))

done



여기서 -lt 는 < 와 같은 뜻이라고 생각 하면 됩니다.


while 문에 사용되는 조건문 종류


while문에 사용 되는 조건식은 아래와 같습니다.




[ -z ] : 문자열의 길이가 0이면 참

[ -n ] : 문자열의 길이가 0이 아니면 참


[ -eq ] : 값이 같으면 참

[ -ne ] : 값이 다르면 참

[ -gt ] :  값1 > 값2

[ -ge ] : 값1  >= 값2

[ -lt ] : 값1 < 값2

[ -le ] : 값1 <= 값2


[ -a ] : &&연산과 동일 and 연산

[ -o ] : ||연산과 동일 xor 연산


[ -d ] : 파일이 디렉토리면 참

[ -e ] : 파일이 있으면 참

[ -L ] : 파일이 심볼릭 링크면 참

[ -r ] : 파일이 읽기 가능하면 참

[ -s ] : 파일의 크기가 0 보다 크면 참

[ -w ] : 파일이 쓰기 가능하면 참

[ -x ] : 파일이 실행 가능하면 참

[ 파일1 -nt 파일2 ]  : 파일1이 파일2보다 최신파일이면 참

[ 파일1 -ot 파일2 ]  : 파일1이 파일2보다 이전파일이면 참

[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참


반응형

Shell Script( 쉘 스크립트 ) for 문 사용법



for 문 기본 사용 법



쉘에서 for문 사용하는 방법에 대해 알아보겠다.

for문은 일정 조건 동안 실행을 반복적으로 수행 하는 구문이다.

일단 예제부터 확인해 보겠다.


#! /bin/ksh


for i in 1 2 3 4 5

do

        echo "$i"

done


예제의 설명은 1부터 5까지 화면에 출력하는 문이다.

즉 5회 반복 구문이다.


for i in 1 2 3 4 5 ==> 1부터 5까지 i에 담는다.

do               ==> 아래 부터 실행 문

echo "$i"  ==> echo는 화면 출력이며 $i는 i 변수 값을 나타 낸다.

done            ==> for문의 종료를 나타낸다.




 for [변수] in [반복 조건]

 do

      [실행문]

 done

 

이상으로 쉘에서 for 문 사용법에 대해 알아봤습니다.

도움이 되셨나요?



반응형

Shell Script( 쉘 스크립트 ) if 문 사용법, 조건식



if 문 기본 사용 법



쉘에서 if문을 사용 시 조건 식이 문자로 되어있어 다소 어려움을 겪을 수 있습니다.

예를 들어 if ( a = b ) 이런 것이 if[ a -eq b ];then fi 형식으로 되어 있다 보니 if문을 사용 시 조건식을 보면서 짜야 할 정도 입니다.


우선 if문 기본 형식 부터 알아 봅시다.

 if [ 값1 조건식 값2 ];then

   수행문

 fi 


if 한칸 띄고 [ 넣고 값과 조건식을 넣어야 하는데 띄어쓰기도 틀리면 스크립트 에러가 나므로 유의하셔서 작성 하시기 바랍니다.

아래는 if문을 활용한 예제 입니다. 


#! /bin/ksh


value=0


if [ ${value} -eq 0 ];then

   echo value is 0  

fi


결과는 value가 0이므로 "value is 0"이 출력 됩니다.


if 문에 사용되는 조건문 종류


if문에 사용 되는 조건식은 아래와 같습니다.


[ -z ] : 문자열의 길이가 0이면 참

[ -n ] : 문자열의 길이가 0이 아니면 참


[ -eq ] : 값이 같으면 참

[ -ne ] : 값이 다르면 참

[ -gt ] :  값1 > 값2

[ -ge ] : 값1  >= 값2

[ -lt ] : 값1 < 값2

[ -le ] : 값1 <= 값2


[ -a ] : &&연산과 동일 and 연산

[ -o ] : ||연산과 동일 xor 연산


[ -d ] : 파일이 디렉토리면 참

[ -e ] : 파일이 있으면 참

[ -L ] : 파일이 심볼릭 링크면 참

[ -r ] : 파일이 읽기 가능하면 참

[ -s ] : 파일의 크기가 0 보다 크면 참

[ -w ] : 파일이 쓰기 가능하면 참

[ -x ] : 파일이 실행 가능하면 참

[ 파일1 -nt 파일2 ]  : 파일1이 파일2보다 최신파일이면 참

[ 파일1 -ot 파일2 ]  : 파일1이 파일2보다 이전파일이면 참

[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참



if문에 다양한 조건식을 활용한 예제 입니다.


#! /bin/ksh


value=0


if [ ${value} -eq 0 ];then

   echo value is 0  

fi


if [ ${value} -ne 1 ];then

    echo value is not 1

fi


test=5


if [ ${test} -gt 2 -a ${test} -le 7 ];then

    echo test greater then 2 and lower then 7

fi 


여기서 AND와 OR 조건 사용 형식에 대해 알아보겠습니다.


[AND] 

 if [ 값1 조건식 값2 -a 값1 조건식 값2 ];then

   수행문

 fi 


[OR] 

 if [ 값1 조건식 값2 -o 값1 조건식 값2 ];then

   수행문

 fi 



이상으로 shell scrip에서 if문 사용법에 대한 설명을 마치겠습니다.

도움이 되셨습니까?

반응형

+ Recent posts