應用場合:參考網上查詢數據表的所有字段名代碼,使用游標生成指定單個表的所有字段名跟逗號組成的用於select 逗號隔開的字段名列表 from字符串等場合。
查詢結果輸出如下:
當前數據表TB_UD_USER的字段列表字符串為
詳細腳本代碼如下:
declare
cursor mycursor is --定義游標
select distinct TABLE_COLUMN.*,TABLE_NALLABLE.DATA_TYPE,TABLE_NALLABLE.NULLABLE from (select distinct utc.table_name table_name, utc.comments table_comments, ucc.column_name column_name, ucc.comments column_comments from user_tab_comments utc, user_col_comments ucc where utc.table_name = ucc.table_name and utc.table_name not like '%_B' and utc.table_name not like '%_Z' and utc.table_name not like '%1%') TABLE_COLUMN, (select distinct table_name, column_name, nullable, DATA_TYPE from user_tab_cols where table_name not like '%_B' and table_name not like '%_Z' and table_name not like '%1%') TABLE_NALLABLE where TABLE_COLUMN.column_name = TABLE_NALLABLE.column_name and TABLE_COLUMN.TABLE_NAME = TABLE_NALLABLE.table_name and TABLE_COLUMN.TABLE_NAME=mytablename order by TABLE_COLUMN.TABLE_NAME,TABLE_COLUMN.column_name;
if mycursor%found then --游標的found屬性判斷是否有記錄
end;
else
begin
selstring:='select '||mystring||' from '||mytablename;
dbms_output.put_line('當前數據表'||mytablename||'查詢所有記錄語句為');
exit;
end;
end if;
close mycursor;
end;