create or replace function getTableAllColumns(tableName varchar2) return varchar2 is
/**function name:getTableAllColumns
author:yzh
date:2018-08-09
description:动态获取表字段,解决当字段值为空时该字段不存储在List<Map<String,Object>>中的问题
********/
v_columns varchar2(4000) :='';
v_columnType varchar2(40):='';
begin
for x in(
select u.COLUMN_NAME,u.DATA_TYPE from user_tab_columns u where u.TABLE_NAME = tableName
)loop
v_columnType :=x.data_type;
--判断字段类型是否是DATE类型
if(v_columnType = 'DATE') then
v_columns :=v_columns|| 'nvl2('||x.column_name||','||x.column_name||',to_date(''9999-12-31'',''yyyy-mm-dd''))'||' as '|| x.column_name||' ,';
else
v_columns :=v_columns|| 'nvl2('||x.column_name||','||x.column_name||',-9999999988)'||' as '|| x.column_name||' ,';
end if;
end loop;
/**去除末尾逗号*/
return substr(v_columns,0,instr(v_columns,',',-1)-1);
end;
/
获取当前表所有字段
猜你喜欢
转载自blog.csdn.net/yzh18373476791/article/details/82290574
今日推荐
周排行