Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Melewati variabel pengguna, pass, sid dalam perintah sqlplus

Anda belum mengatakan apa yang sebenarnya terjadi, tetapi saya kira Anda tidak dimintai kredensial, dan mungkin itu tidak dapat menemukan sqlplus . Pada kotak Red Hat ini berfungsi:

#!/bin/bash
echo Please enter an Oracle Username:
read USERNAME
echo "Please enter the Oracle Username's Password:"
read -s PASS
SID=XE
conn_str=$USERNAME/[email protected]$SID

ssh [email protected] << EOF
# set these for your specific environment
ORACLE_HOME=<path to ORACLE_HOME>
PATH=$PATH:$ORACLE_HOME/bin # or without .../bin depending on client
TNS_ADMIN=<path to tnsnames.ora directory, if not default>

sqlplus -s /nolog
connect $conn_str
select * FROM user_tables;
exit
EOF

Ini mengumpulkan nilai dari pengguna di mesin lokal untuk menghindari masalah 'Terminal semu tidak akan dialokasikan karena stdin bukan terminal'.

Kemudian mengatur lingkungan Oracle sekali di server jarak jauh - apa yang perlu Anda atur tergantung pada klien mana yang Anda gunakan (terutama apakah Anda menggunakan klien instan, meskipun jika Anda terhubung sebagai oracle itu tampaknya tidak mungkin, dan Anda mungkin dapat menjalankan oraenv ).

Saya juga telah mengubahnya untuk menjalankan SQL*Plus dengan /nolog lalu connect setelah berjalan, sehingga kredensial tidak terekspos di ps keluaran. Dan saya telah beralih dari tabs yang lama ke user_tables yang lebih umum .

Heredocs bersarang berfungsi tetapi tidak diperlukan; perintah SQL sudah dimasukkan di tempat yang tepat dan akan dilihat oleh SQL*Plus daripada shell jarak jauh.

Tentu saja, karena saya tidak tahu kesalahan apa yang sebenarnya Anda lihat, ini sebagian besar merupakan spekulasi. Mungkin akan lebih mudah untuk menginstal klien secara lokal dan menggunakan koneksi SQL*Net daripada SSH, tetapi mungkin ada batasan firewall yang tidak kami ketahui.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MULAI/AKHIR dan BUAT Tabel dalam satu file .sql

  2. excel ke Oracle db menggunakan VS 2005 C #

  3. Apa dan kapan saya harus menentukan setFetchSize()?

  4. String kueri Oracle termasuk karakter tanda hubung

  5. Addnode resolv.conf Kegagalan