create or replace function f_get_allcol(i_table_name varchar2, i_rd rowid)
return varchar2 as
v_sql varchar2(4000);
v_col_list varchar2(4000);
v_result varchar2(4000);
begin
select listagg(t.COLUMN_NAME, '||') within group(order by t.COLUMN_ID)
into v_col_list
from dba_tab_cols t
where t.TABLE_NAME = upper(i_table_name);
execute immediate 'select substr(' || v_col_list || ',1,4000) from ' || i_table_name ||
' where rowid = ''' || i_rd||''''
into v_result;
return v_result;
end;
select f_get_allcol('test1',t.rowid) from test1 t;
return varchar2 as
v_sql varchar2(4000);
v_col_list varchar2(4000);
v_result varchar2(4000);
begin
select listagg(t.COLUMN_NAME, '||') within group(order by t.COLUMN_ID)
into v_col_list
from dba_tab_cols t
where t.TABLE_NAME = upper(i_table_name);
execute immediate 'select substr(' || v_col_list || ',1,4000) from ' || i_table_name ||
' where rowid = ''' || i_rd||''''
into v_result;
return v_result;
end;
select f_get_allcol('test1',t.rowid) from test1 t;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货