2013-08-13 4 views
2

tst1.sql이 완료된 후 병렬에서 SQL 스크립트 2,3을 실행하도록이 KornShell (ksh) 스크립트를 설정하려면 어떻게합니까? 2,3이 완료된 후 tst4.sql을 실행 하시겠습니까? 이것이 가능한가? 백그라운드 프로세스 (명령의 끝에서 & 추가)가 병렬로 실행되므로유닉스 셸 스크립트가 병렬로 SQL 스크립트를 실행합니다.

#/usr/bin/ksh 
#SET ENVIRONMENT ORACLE 

sqlplus user1/pw @/home/scripts/tst1.sql 
sqlplus user1/pw @/home/scripts/tst2.sql 
sqlplus user1/pw @/home/scripts/tst3.sql 
sqlplus user1/pw @/home/scripts/tst4.sql 
exit 0 

답변

3

첫 번째 명령은 동 기적으로 실행해야합니다 ...

당신은 마지막 두 명령을 시작합니다.

마지막 두 프로세스가 완료되기 전에 스크립트가 완료되기를 기다리시겠습니까? 이 같은

뭔가 작업을해야합니다 :

sqlplus user1/pw @/home/scripts/tst1.sql 
    sqlplus user1/pw @/home/scripts/tst2.sql & 
    pid2=$! 
    sqlplus user1/pw @/home/scripts/tst3.sql & 
    pid3=$! 
    # pseudo-code: 
    # while (`ps -p"$pid2,$pid3" | wc -l` != "1"); 
    sqlplus user1/pw @/home/scripts/tst4.sql 
+0

예. 나는 기다리고 싶다. 나는 또한 2,3이 완료된 후에 실행할 다른 tst4.sql을 추가하려고한다. 그게 가능하니? – jdamae

+0

tst2.sql 및 tst3.sql을 tst1.sql 및 tst4.sql 이후에 동기화 할 일부 파일 (tmp.sql)에 연결하면 어떻습니까? 이러한 파일이 매우 큰 경우가 아니라면 가장 쉬운 해결책입니다. – fabien

+0

동기화 사용 방법을 자세히 설명해 주시겠습니까? 파일이 매우 작습니다. – jdamae

관련 문제