2009-12-09 4 views
0

다음 배치 스크립트가 있습니다.DOS/sqlplus "핸들이 잘못되었습니다"오류가 발생 했습니까?

sqlplus ms/[email protected] < drop.sql 
sqlplus ms/[email protected] < create.1.0.sql 

Windows 탐색기에서 박쥐 파일을 두 번 클릭하여 실행하면 정상적으로 작동합니다.

하지만 DOS 프롬프트에서 명령 이름을 입력하면 오류가납니다.

C:\>create.bat 

C:\>sqlplus ms/[email protected] 0<drop.sql 
The handle is invalid. 

C:\>sqlplus ms/[email protected] 0<create.1.0.sql 
The handle is invalid 

어떤 아이디어가 있습니까?


업데이트 : < 대신 @을 사용하도록 변경했습니다. 이렇게하면 오류가 발생하지만 스크립트는 첫 번째 파일 만 실행 한 다음 SQL> 프롬프트에서 나갑니다. 두 번째 파일을 실행하려면 프롬프트에서 exit을 입력해야하며 두 번째 파일이 실행됩니다. 두 파일을 모두 실행하는 방법을 모릅니다. ??

+0

명령 줄에서 실행중인 일괄 처리 스크립트가 약간의 추가 0을 가지고있는 것처럼 보입니다. 0은 유효하지 않은 핸들이므로 오류 메시지입니다. shoover의 솔루션을 사용하십시오. @는 주어진 sql 스크립트를 실행하도록 알려주는 sqlplus의 매개 변수입니다. –

+0

시도해 보니 행운이 아닙니다. 업데이트 된 게시물. –

+0

내 의견보기 Jason의 대답. – shoover

답변

4

, 명령 줄 리디렉션보다 더 좋은 방법은 @ 구문이다 같은 디렉토리에있는 다른 .sql 스크립트의 .sql 스크립트.

SQL> help @ 
SQL> help @@ 
+0

시도해 보니 완전히 작동하지 않았습니다. 업데이트 된 게시물. –

+0

내가 한 두 스크립트를 호출하는 새로운'create.sql' 스크립트를 만들었습니다. '@ '기호를 사용하여'create.sql'을 실행합니다. –

0

Made the change to use @ instead of <. This gets around the error but now the script only executes the first file and then leaves you at the SQL> prompt. To get the second file to execute you have to type exit at the prompt, then the second file runs. Not sure how to get both files to execute. ??

나는 SQL 플러스를 실행 한 다음이 문제를 해결하기 위해 그것을 종료 파이썬 스크립트를 작성 끝났다. 나는 그 한계를 둘러싼 어떤 길을 아직 찾지 못했다. 제안 된대로 @@을 사용하는 경우 한 번만 문제를 해결해야합니다. 첫 번째 스크립트에서 두 번째 스크립트를 실행하면됩니다.

+0

SQL * PLUS에서만 스크립트를 실행하려는 경우 QUIT를 추가 할 수 있습니다. 명령을 사용하십시오. 이로 인해 SQL * PLUS가 종료됩니다. – shoover