失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > oracle 游标取字段名称 Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串...

oracle 游标取字段名称 Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串...

时间:2024-06-21 23:10:08

相关推荐

oracle 游标取字段名称 Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串...

应用场合:参考网上查询数据表的所有字段名代码,使用游标生成指定单个表的所有字段名跟逗号组成的用于select 逗号隔开的字段名

应用场合:参考网上查询数据表的所有字段名代码,,使用游标生成指定单个表的所有字段名跟逗号组成的用于select 逗号隔开的字段名列表 from字符串等场合。

查询结果输出如下:

当前数据表TB_UD_USER的字段列表字符串为

AH,BIRTHPLACE,BM,CELLPHONE,CJGZRQ,DEPARTMENT2,DJJID,GZCX,GZKH,GZSFZH,HJDZ,HYZK,ID,JHRQ,JTZZ,LAFX_LD,LJDZ,LLY,LXDH,NAME,NXDH,POLICENUMBER,RESERVE1,RESERVE10,RESERVE9,SCCP,SEX,SFJH,SFQBY,SFZ,SPJB,YL_22,ZJ,ZW,ZZMM

当前数据表TB_UD_USER查询所有记录语句为

select AH,BIRTHPLACE,BM,CELLPHONE,CJGZRQ,DEPARTMENT2,DJJID,GZCX,GZKH,GZSFZH,HJDZ,HYZK,ID,JHRQ,JTZZ,LAFX_LD,LJDZ,LLY,LXDH,NAME,NXDH,POLICENUMBER,RESERVE1,RESERVE10,RESERVE9,SCCP,SEX,SFJH,SFQBY,SFZ,SPJB,YL_22,ZJ,ZW,ZZMM from TB_UD_USER

详细脚本代码如下:

--Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串

declare

mytablename NVARCHAR2(200):='TB_UD_USER'; --定义要查询的数据表名称变量

mystring NVARCHAR2(1000):=' '; --定义要输出的字段名称列表字符串变量

selstring VARCHAR2(2000):=' '; --定义要输出的查询语句字符串变量

cursor mycursor is --定义游标

select distinct TABLE_COLUMN.*,TABLE_NALLABLE.DATA_TYPE,TABLE_NALLABLE.NULLABLE from (select distinct utc.table_name table_name, ments table_comments, ucc.column_name column_name, ments 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;

myrecord mycursor%rowtype; --定义游标记录类型

Counter int :=0;

begin

open mycursor; --打开游标

if mycursor%isopen then --判断打开成功

loop --循环获取记录集

fetch mycursor into myrecord; --获取游标中的记录

if mycursor%found then --游标的found属性判断是否有记录

begin

--如果是第一个字段

if(mystring=' ') then

mystring:=myrecord.column_name;

else

mystring:=mystring||','||myrecord.column_name;

end if;

end;

else

begin

dbms_output.put_line('当前数据表'||mytablename||'的字段列表字符串为');

dbms_output.put_line(mystring);

selstring:='select '||mystring||' from '||mytablename;

dbms_output.put_line('当前数据表'||mytablename||'查询所有记录语句为');

dbms_output.put_line(selstring);

exit;

end;

end if;

end loop;

else

dbms_output.put_line('游标没有打开');

end if;

close mycursor;

end;

本文永久更新链接地址:

发布php中文网,转载请注明出处,感谢您的尊重!

如果觉得《oracle 游标取字段名称 Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。