2013-05-30 2 views
0

배치 파일을 실행하고 데이터베이스 값을 전달해야합니다. 요일에 따라 DOS 명령에 다른 값을 전달해야합니다. 이 특정 비즈니스 규칙은 데이터베이스의보기에 정의됩니다.SQLPLUS의 데이터베이스 값을 배치 파일의 매개 변수로 사용하십시오.

우리의 기본 스케줄링 도구는 SQLPLUS에서 스크립트를 실행하는 데이터 세션입니다. 따라서 이것이 스케줄 활동에 선호되는 방법입니다. 나는 또한 SQLPLUS를 호출하고 값을 얻는 배치 파일을 직접 실행할 수는 있지만 훨씬 더 번거롭기 때문에 그렇게하지 않는 편이 좋다.

저는 SQLPLUS 아마추어예요.

SQLPLUS에 전달하는 SQL 스크립트는 다음과 같습니다. 내가 가지고있는 문제는 전달되는 것입니다 : sTriggerName, 값이 아닙니다.

set echo on 
set feedback on 
set termout on 


VAR sTriggerName VARCHAR2(100) 

SELECT TRIGGERNAME INTO :sTriggerName 
FROM SCHEMA.VIEW 
WHERE CALENDAR_DATE = TRUNC(SYSDATE) AND ROWNUM < 2; 
/

HOST "E:\CallScheduleTrigger.CMD :sTriggerName." 

quit 

답변

2

위의 예에서 바인드 변수를 사용하고 있습니다.

http://www.oracle.com/technetwork/testcontent/sub-var9-086145.html

sTriggerName

COLUMN TRIGGERNAME new_value sTriggerName 
SELECT TRIGGERNAME FROM SCHEMA.VIEW WHERE CALENDAR_DATE = TRUNC(SYSDATE) AND ROWNUM < 2; 

라는 대체 변수로 AA 데이터베이스 값을로드하려면 대신 데이터베이스 사용에서 대체 변수를로드 HWO

이 링크는 나에게 보여 주었다 이 대체 변수를 호스트 명령에서 사용하십시오 (예 : 배치 파일의 매개 변수).

HOST "E:\CallScheduleTrigger.CMD &sTriggerName" 
관련 문제