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

Masukkan hasil pilih dalam variabel ksh

Sebagai garis besar dasar, Anda dapat menjalankan SQL*Plus dengan heredoc untuk melakukan kueri, dan menetapkan output ke variabel:

P_NUMBER=`sqlplus -s /nolog <<!EOF
connect username/password
whenever sqlerror exit failure
set pagesize 0
set feedback off
select your_value from your_table where your_key = 'something'; 
exit 0
!EOF`

Melampirkan di backticks memberikan hasil ke variabel. $P_NUMBER kemudian akan menyimpan nilai apa pun yang didapat kueri Anda (atau pesan kesalahan jika kredensialnya salah, katakanlah). Ini membantu jika Anda yakin kueri akan mengembalikan tepat satu hasil. Anda juga dapat menguji kode pengembalian dengan $? untuk mencari kesalahan, sebelum Anda mencoba menggunakan variabel Anda.

Termasuk -s tandai, matikan umpan balik dan setel ukuran halaman ke nol secara kolektif menekan semua kebisingan sehingga Anda hanya mendapatkan hasil dan tidak perlu menghapus spanduk, judul, dll.

Dan akhirnya saya menggunakan /nolog dan letakkan connect pernyataan di dalam heredoc sehingga kredensial tidak muncul dalam daftar proses, yang merupakan masalah keamanan yang sering diabaikan. Jika Anda tidak ingin melakukannya dan masukkan kredensial sebagai sqlplus username/passwd , Anda dapat menambahkan -l tandai sehingga hanya mencoba masuk sekali; jika tidak, jika login gagal karena alasan tertentu, ia akan mencoba menggunakan sisa dokumen ini sebagai kredensial lebih lanjut, dan mungkin tampak terpaku dengan skrip pendek.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Regexp untuk mengganti \n,\r dan \t dengan spasi

  2. Cara Memesan berdasarkan Nama Bulan di PostgreSQL atau Oracle

  3. ORA-01111 dalam MRP dalam database Siaga Fisik

  4. Memecah sejumlah besar baris menjadi kueri yang lebih kecil? Paralelisme

  5. terhubung dengan bulan