应用:已知的字段名,表中的所有数据的查询数据库中包含的所有数据表的字段名
操作方法:指定字段名,用户数据库表,它可以执行以下查询
--Oracle生成查询包括对应于所有数据表记录语句中指定的字段名
declare
mycolumnname VARCHAR(255):=‘userid‘;--定义要查询的字段名变量,执行前改动成您要查询的字段名
myownername VARCHAR(255):=‘system‘;--定义要查询的数据库username变量,执行前改动成您要查询的数据库username
mystring NVARCHAR2(4000):=‘‘; --定义要输出的字符串变量
cursor mycursor is --定义游标
select * from dba_tab_columns where lower(column_name)=mycolumnname and lower(owner)=myownername;
myrecord mycursor%rowtype; --定义游标记录类型
Counter int :=0;
begin
open mycursor; --打开游标
if mycursor%isopen then --推断打开成功
loop --循环获取记录集
fetch mycursor into myrecord; --获取游标中的记录
if mycursor%found then --游标的found属性推断是否有记录
mystring:=‘select * from ‘||myrecord.table_name||‘;‘;
dbms_output.put_line(mystring);
else
exit;
end if;
end loop;
else
dbms_output.put_line(‘游标没有打开‘);
end if;
close mycursor;
end;
执行结果相似于以下的语句:
select * from DEF$_PROPAGATOR;
select * from REPCAT$_REPCATLOG;
select * from REPCAT$_REPGROUP_PRIVS;
select * from SQLPLUS_PRODUCT_PROFILE;
select * from PRODUCT_PRIVS;
版权声明:本文博主原创文章。博客,未经同意,不得转载。