SQL Plus 현재 디렉터리 변경
SQL Plus의 현재 디렉터리를 창 아래에서 어떻게 변경합니까?
"@filename" 명령어를 여러 개 사용하여 스크립트를 작성하려고 합니다.
파일 --> 열기 명령으로 스크립트를 열 수 있다는 것을 알고 있습니다. 그러면 현재 디렉터리가 변경됩니다. 하지만 자동으로 이 작업을 수행할 수 있는 방법을 찾고 있습니다.
결의안
Plasmer의 응답을 바탕으로 Windows에서 SQLPATH 환경 변수를 설정하고 나에게 맞는 것을 얻었습니다.HOST 명령으로 설정하려고 하지 않았습니다(작동할지 의심됩니다).
Pourquoi Lity 테스트 데이터의 답변은 좋지만 저에게는 적합하지 않습니다(디렉토리가 너무 멀리 떨어져 있음).그리고 물론 그럴 수 없다는 가이의 대답도 맞습니다.저는 이 두 가지를 투표해서 플라즈머의 대답을 받아들이겠습니다.
제가 하는 일은 이렇습니다.
도움이 되는 변수를 정의합니다.
define dir=C:\MySYSTEM\PTR190\Tests\Test1
@&dir\myTest1.sql
그럴수는 없어요.cd
SQL*Plus(가능)cd
host 명령을 사용하지만 하위 프로세스이기 때문에 부모 프로세스에서는 설정이 유지되지 않습니다.
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
'IT' 카테고리의 다른 글
파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.MVC4 웹 API의 Net.Http 버전= 2.0.0 (0) | 2023.07.12 |
---|---|
SQL의 기존 테이블에 null이 아닌 새 열이 있는 대체 테이블 (0) | 2023.07.12 |
HTTP 모듈에서 세션 상태에 액세스할 수 있습니까? (0) | 2023.07.07 |
그룹별 변수 합계 방법 (0) | 2023.07.07 |
Mongodb 서비스가 시작되지 않습니다. (0) | 2023.07.07 |