IT

SQL Plus 현재 디렉터리 변경

itgroup 2023. 7. 7. 18:58
반응형

SQL Plus 현재 디렉터리 변경

SQL Plus의 현재 디렉터리를 창 아래에서 어떻게 변경합니까?

"@filename" 명령어를 여러 개 사용하여 스크립트를 작성하려고 합니다.

파일 --> 열기 명령으로 스크립트를 열 수 있다는 것을 알고 있습니다. 그러면 현재 디렉터리가 변경됩니다. 하지만 자동으로 이 작업을 수행할 수 있는 방법을 찾고 있습니다.


결의안

Plasmer의 응답을 바탕으로 Windows에서 SQLPATH 환경 변수를 설정하고 나에게 맞는 것을 얻었습니다.HOST 명령으로 설정하려고 하지 않았습니다(작동할지 의심됩니다).

Pourquoi Lity 테스트 데이터의 답변은 좋지만 저에게는 적합하지 않습니다(디렉토리가 너무 멀리 떨어져 있음).그리고 물론 그럴 수 없다는 가이의 대답도 맞습니다.저는 이 두 가지를 투표해서 플라즈머의 대답을 받아들이겠습니다.

제가 하는 일은 이렇습니다.

도움이 되는 변수를 정의합니다.

define dir=C:\MySYSTEM\PTR190\Tests\Test1

@&dir\myTest1.sql

그럴수는 없어요.cdSQL*Plus(가능)cdhost 명령을 사용하지만 하위 프로세스이기 때문에 부모 프로세스에서는 설정이 유지되지 않습니다.

SQL*Plus에서는 디렉터리를 변경할 수 없을 것 같습니다.

디렉터리를 변경하는 대신@@filename현재 스크립트가 실행 중인 디렉터리에 상대적인 위치를 가진 다른 스크립트에서 읽습니다.예를 들어 스크립트가 두 개인 경우

C:\Foo\Bar\script1.sqlC:\Foo\Bar\Baz\script2.sql

그리고나서script1.sql달릴 수 있습니다script2.sql만약 그것에 그 행이 포함되어 있다면.

@@Baz\script2.sql

자세한 내용은 이 항목을 참조하십시오.@@.

SQLPATH 환경 변수를 사용하여 sqlplus에서 실행하려는 스크립트를 찾을 위치를 알려줄 수 있습니까?스크립트에서도 HOST를 사용하여 SQLPATH를 설정할 수 있다고 생각합니다.

두 스크립트의 이름이 같고 두 디렉토리가 모두 SQLPATH에 있으면 문제가 발생할 수 있습니다.

안 될 것 같아요!

/home/export/user1 $ sqlplus / 
> @script1.sql
> HOST CD /home/export/user2
> @script2.sql

대본2.sql이 있어야 합니다./home/export/user1.

전체 경로를 사용하거나 스크립트를 종료하고 시작합니다.sqlplus올바른 디렉토리에서 다시 검색합니다.

#!/bin/bash
oraenv .
cd /home/export/user1
sqlplus / @script1.sql
cd /home/export/user2
sqlplus / @script2.sql

(그런 것 - 기억에서 하는 것!)

Oracle의 새로운 SQLcl에서는 pwd와 함께 제공되는 cd 명령이 있습니다. SQLcl은 여기에서 다운로드할 수 있습니다. http://www.oracle.com/technetwork/developer-tools/sqlcl/overview/index.html

다음은 간단한 예입니다.

SQL>pwd
/Users/klrice/
NOT_SAFE>!ls *.sql
db_awr.sql  emp.sql     img.sql     jeff.sql    orclcode.sql    test.sql
db_info.sql fn.sql      iot.sql     login.sql   rmoug.sql

SQL>cd sql
SQL>!ls *.sql
003.sql             demo_worksheet_name.sql     poll_so_stats.sql
1.sql               dual.sql            print_updates.sql

SQL>

sql plus에 대한 윈도우 단축키를 만들고 작업 디렉터리를 설정해 보았습니까?

SQLPATH 환경 변수가 가장 좋은 방법이라고 생각합니다. 경로가 여러 개인 경우 세미콜론(;)으로 구분하여 입력하십시오.디렉터리 중에 동일한 이름의 스크립트 파일이 있는 경우, (경로를 입력한 순서대로) 첫 번째 스크립트 파일이 실행되고 두 번째 스크립트 파일은 무시됩니다.

몇 년 후에 저는 같은 문제를 겪었습니다.임시 배치 파일과 sqlplus의 다른 인스턴스를 생성하는 것이 해결책입니다.

첫 번째 SQL 스크립트:

:
set echo off
spool sqlsub_tmp.bat
prompt cd /D D:\some\dir
prompt sqlplus user/passwd@tnsname @second_script.sql
spool off
host sqlsub_tmp.bat
host del sqlsub_tmp.bat
:

첫 번째 문으로 돌아가려면 "second_script.sql"이 마지막에 "exit" 문이 필요합니다.

셸링 아웃은 셸에서 [a|any] 명령을 실행할 수 있는 가능성을 제공하기 때문에 작업을 수행합니다.

http://www.dba-oracle.com/t_display_current_directory_sqlplus.htm

간단히 말해서 현재 디렉터리를 봅니다.

!pwd

바꿔치기

!cd /path/you/want

언급URL : https://stackoverflow.com/questions/509048/sql-plus-change-current-directory

반응형