Sql 在Oracle表中查找特定数据

Sql 在Oracle表中查找特定数据,sql,oracle,plsql,Sql,Oracle,Plsql,我需要在oracle数据库中找到一个列的值,但我不知道是哪个 存储在其中的表或列 如何像在中一样搜索特定或类似%%的数据 从SYS.dba\u源中选择* 有那样的桌子吗 列名ID数据类型为空?评论 所有者1 VARCHAR2 30字节Y 名称2 VARCHAR2 30字节Y对象名称 类型3 VARCHAR2 12字节Y 对象的类型: 类型,类型主体,程序,功能, 包、包体或JAVA源代码 第4行编号Y源此行的行号 文本5 VARCHAR2 4000字节Y源文本 想象一下,您的模式中有几个表,您希

我需要在oracle数据库中找到一个列的值,但我不知道是哪个 存储在其中的表或列

如何像在中一样搜索特定或类似%%的数据

从SYS.dba\u源中选择* 有那样的桌子吗

列名ID数据类型为空?评论 所有者1 VARCHAR2 30字节Y 名称2 VARCHAR2 30字节Y对象名称 类型3 VARCHAR2 12字节Y 对象的类型: 类型,类型主体,程序,功能, 包、包体或JAVA源代码 第4行编号Y源此行的行号 文本5 VARCHAR2 4000字节Y源文本 想象一下,您的模式中有几个表,您希望在这些表中的所有列中找到一个特定的值。理想情况下,会有一个sql函数,如

select * from * where any(column) = 'value';
不幸的是,没有这样的功能。 但是,可以编写一个PL/SQL函数来实现这一点。下面的函数迭代当前架构的所有表中的所有字符列,并尝试在其中查找val

创建或替换函数find_in_schemaval varchar2 返回varchar2是 v_旧_表用户_选项卡_列。表名称%type; v_,其中Varchar24000; v_first_col boolean:=真; rc类型为ref游标; c rc; v_rowid varchar220; 开始 对于r in 选择 t* 从…起 用户选项卡列,用户所有表a 其中t.table\u name=a.table\u name 和t.data_类型,如“%CHAR%” 按t.table\u name循环排序 如果v_old_table为空,则 v_old_table:=r.table_name; 如果结束; 如果v_old_table r.table_name那么 v_first_col:=真; -dbms_output.put_line'search'| | v|u old_表; 打开c以选择“从”| | v| u old| u table | |“| v| u where中选择rowid”; 将c读入v_rowid; 环 未找到c%时退出; dbms|U输出。将|行“rowid:”|| v|u rowid |放在“| v|u old|u表中; 将c读入v_rowid; 端环; v_old_table:=r.table_name; 如果结束; 如果v_先_col然后 v|u-where:=“where'| r.column|u-name | | like%'| | val | |'%”; v_first_col:=假; 其他的 v|u-where:=v|u-where | |'或'| r.column|u-name | |'like%'| | val | |''; 如果结束; 端环; 回归"成功",; 终止
当我有一个表格6i时,我遇到了这个问题,表格中有数据,但我不知道从哪里获取数据表,所以这是一种解决节省我随机搜索表时间的方法