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

Membuat skrip SQL*Plus menggunakan SQL*Plus

Masalahnya adalah SQL*Plus menafsirkan ; . pertama Anda sebagai terminator untuk perintah. Anda mungkin telah memperhatikan bahwa jika Anda menulis perintah ke file teks dan menjalankannya (atau mengeditnya di editor teks dengan SQL*Plus), perintah itu akan berfungsi.

Untuk membuatnya bekerja dengan pengetikan langsung, jika Anda benar-benar ingin melakukannya (tampaknya tidak mungkin jika itu akan menjadi sangat lama!), Anda dapat mematikan deteksi otomatis terminator dengan SET SQLTERMINATOR off . Perhatikan bahwa Anda harus memberi tahu SQL*Plus bahwa Anda sudah selesai dan itu harus dijalankan dengan / instruksi sebagai ; . kedua diabaikan juga.

SQL> SPOOL myscript.sql
SQL> SET SQLTERMINATOR off
SQL> SELECT q'[SPOOL log
  2  SELECT COUNT(*) FROM DUAL;
  3  PROMPT Done.
  4  ]' FROM DUAL
  5  /
SPOOL log
SELECT COUNT(*) FROM DUAL;
PROMPT Done.

Jika Anda membangun ini dari kamus data, opsi lain adalah menggunakan PL/SQL untuk melakukan kueri dan manipulasi dan dbms_output untuk menghasilkan output yang akan Anda spool, selama ukuran file akhir tidak melebihi batas buffer.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengonfigurasi Pendengar di Oracle Database (edisi 12c, 18c, dan 19c)

  2. ORA-00904:ID:pengenal tidak valid

  3. Hindari memasukkan nilai eksponensial di kolom DB Float

  4. Kerangka Entitas &Oracle:Tidak Dapat Memasukkan VARCHAR2> 1.999 Karakter

  5. Oracle Live SQL