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

Bagaimana cara menempatkan nilai default untuk setiap kolom dalam tabel?

Kita tidak bisa melakukan itu. Kita perlu mengetikkan semua kolom dan fungsi NVL() masing-masing. Saya tahu itu sepertinya membutuhkan banyak usaha, tetapi pertimbangkan apa yang akan terjadi jika salah satu kolom Anda adalah DATE atau tipe data "eksotis" lainnya.

Jika Anda memiliki banyak kolom dan Anda benar-benar ingin menghemat tenaga, Anda dapat membuat klausa dari kamus data:

 select 'nvl('|| column_name || ', 0)' 
 from user_tab_columns
 where table_name = 'STUDENT'
 order by column_id;

Cut'n'paste hasil yang disetel ke editor.

Setelah Anda memulai rute ini, mudah untuk menjadi lebih canggih:

 select case when column_id > 1 then ',' end ||
       'nvl('|| column_name || ',' ||
       case when data_type = 'DATE' then 'sysdate'
            when  data_type = 'VARCHAR2' then '''DEF''' 
            else '0' end ||
       ')' 
 from user_tab_columns
 where table_name = 'STUDENT'
 order by column_id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengurai nama tabel dan kolom dari SQL/HQL Java

  2. Cara mengulang kolom di kursor Oracle pl/sql

  3. menambahkan bulan ke tanggal SQL

  4. cara menyimpan nilai BigInteger di database oracle

  5. Gunakan alias kolom dalam pilihan yang sama