Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để đặt giá trị mặc định cho mọi cột trong bảng?

Chúng tôi không thể làm điều đó. Chúng ta cần gõ tất cả các cột và các hàm NVL () riêng lẻ của chúng. Tôi biết điều đó có vẻ như rất nỗ lực nhưng hãy cân nhắc điều gì sẽ xảy ra nếu bất kỳ cột nào của bạn là DATE hoặc một số kiểu dữ liệu "kỳ lạ" khác.

Nếu bạn có nhiều cột và bạn thực sự muốn tiết kiệm công sức, bạn có thể tạo các mệnh đề từ từ điển dữ liệu:

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

Cắt tập hợp kết quả vào trình chỉnh sửa.

Khi bạn bắt đầu trên con đường này, bạn sẽ dễ dàng trở nên phức tạp hơn:

 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. Cập nhật câu lệnh với tham gia bên trong trên Oracle

  2. tham chiếu một khóa ghép trong Oracle

  3. Làm thế nào để thay thế các giá trị null bằng một văn bản?

  4. Cách sử dụng các biến liên kết Oracle với LIKE trong C #

  5. Làm cách nào để lưu trữ một lượng lớn dữ liệu từ cơ sở dữ liệu sang XML (vấn đề về bộ nhớ)?