source

명령줄의 sqlplus 문

lovecheck 2023. 3. 18. 08:43
반응형

명령줄의 sqlplus 문

이런 일이 가능할까요?

$ sqlplus -s user/pass "select 1 from dual"또는
$ echo "select 1 from dual" | sqlplus -s user/pass

내가 할 수 있다는 걸 알아select 1 from dual다음 작업을 수행합니다.
$ sqlplus -s user/pass @myFile.sql

sqlplus를 만족시키기 위해서 파일을 작성할 필요가 있는지 궁금합니다.

사용자 이름/비밀번호는 Unix/Linux에서 명령줄에 직접 배치하면 "ps -ef" 명령을 실행할 수 있는 모든 사용자가 볼 수 있습니다. 큰 보안 문제가 될 수 있습니다.

보통 UNIX/Linux에서 "ps -ef" 명령을 사용하여 사용자 이름/비밀번호가 표시되지 않도록 파일을 만들거나 여기서 문서를 사용할 것을 권장합니다.사용자 이름/비밀번호가 스크립트파일 또는 SQL 파일에 포함되어 있는 경우 적절한 사용자/그룹 읽기 권한을 사용하여 보호할 수 있습니다.그런 다음 셸 스크립트에서 다음과 같이 파일 내에 사용자/패스를 유지할 수 있습니다.

sqlplus -s /nolog <<EOF
connect user/pass
select blah;
quit
EOF

선택문 끝에 세미콜론이 있는지 확인하기만 하면 정확한 쿼리를 실행할 수 있습니다. (출력은 실제이며 연결 매개 변수는 제거되었습니다.)

echo "select 1 from dual;" | sqlplus -s username/password@host:1521/service 

출력:

         1
----------
         1

이는 중요한 사항이지만 Mac OS X Snow Leopard 및 Oracle 11g에서 실행됩니다.

마이버전

$ sqlplus -s username/password@host:port/service <<< "select 1 from dual;"


         1
----------
         1

편집:

여러 줄의 경우 이 기능을 사용할 수 있습니다.

$ echo -e "select 1 from dual; \n select 2 from dual;" | sqlplus -s username/password@host:port/service


         1
----------
         1


         2
----------
         2

이거 *nix인 것 같은데?

"여기 문서" 사용:

sqlplus -s user/pass <<+EOF
select 1 from dual;
+EOF

EDIT: 두 번째 예를 시험해 봤어야 했어요.동작도 합니다(Windows에서도 san ticks).

$ echo 'select 1 from dual;'|sqlplus -s user/pw

         1
----------
         1


$

Windows 버전의 경우는, 이하를 사용해 주세요.큰따옴표(")를 삭제하다

echo select 1 from dual; | sqlplus -s username/password@service

언급URL : https://stackoverflow.com/questions/1639704/sqlplus-statement-from-command-line

반응형