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;