oracle查询有哪些表拥有这个值

数据库可不可以根据一个值查询出哪些数据表拥有这个值?比如说我这有A表有个ID字段值为”0dbe92de-c478-433f-9f07-ce0a4dfb2fd2“,但我不知道关联表和关联的字段,我可以根据这个值查询出哪张或者哪几张表拥有这个值么?或者有什么方法找到这个关联字段?

8个回答

--Oracle 根据字段值查询其所在的表、字段

DECLARE

CURSOR cur_query IS

SELECT table_name, column_name, data_type FROM user_tab_columns;

a NUMBER;

sql_hard VARCHAR2(2000);

vv NUMBER;

BEGIN

FOR rec1 IN cur_query LOOP

a:=0;

IF rec1.data_type ='VARCHAR2' OR rec1.data_type='CHAR' THEN

a := 1;

END IF;

IF a>0 THEN

sql_hard := '';

sql_hard := 'SELECT count(*) FROM '|| rec1.table_name ||' where '

||rec1.column_name|| ' like''吴芳''';--字段值

dbms_output.put_line(sql_hard);

EXECUTE IMMEDIATE sql_hard INTO vv;

IF vv > 0 THEN dbms_output.put_line('[字段值所在的表.字段]:['||rec1.table_name||'].['||rec1.column_name||']');

END IF;

END IF;

END LOOP;

END;

yu9851910
yu9851910 是只需要更改“吴芳”这里么?我修改后没有查询出任何东西
一年多之前 回复

你可以通过创建视图试试

yu9851910
yu9851910 数据库早就存在了,所有表都没有备注,现在对找出两字关联字段相当困扰
一年多之前 回复

这个数据表多的情况不可能找出来的。

 SELECT * FROM user_tab_columns;

这个视图含数据库所有表名、列名,先根据已知数据值的 类型、长度、是否可为空等属性,缩小可能的列名范围,再写个小程序遍历查找
(数据库非常庞大的话大概会很困难)

你这种方法关联不全,只能查询到相关业务发生的关联,如果还没有业务数据,你这个是体现不出来的。最好找个技术熟悉跟此表相关业务,再看程序查找。

select name from information_schema.COLUMNS where table_schema="数据库名"

1、你这个值应该是uid什么生成的,人工查看每张表的id值,值的样子差不多的再手动写sql查询过滤验证是否存在吧
2、遍历所有表所有字段,拼接sql,再循环一个一个执行吧,会很慢,很慢,很慢

这个很明显是 guid 机器识别码 自动生成的主键存进数据库的 C# Guid.NewGuid(); 这个方法就可以生成

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
查询ORACLE EBS 有哪些接口表
Oracle EBS 接口表: SELECT * FROM dba_objects db WHERE db.object_type = 'TABLE' AND db.object_name LIKE '%INTERFACE%'; SELECT * FROM dba_objects db WHERE db.object_type = 'TABLE' AND...
scott用户拥有哪些表?
[color=#0000FF][size=14px]怎么用命令查询自己的数据库中有多少个表,用户scott拥有哪些表,能操作哪些表?[/size][/color]
ORACLE查询有数据的表
ORACLE版本是10,现在数据中有900多张数据表,rn有一些表中有数据,有一些没有数据,rn现在呢我需要查询出所有有数据的那些表。rn别说用select 一张张表来看,那会死人的。rn
Navicat查询哪些表有指定字段名
通常需要查询某个字段来自于那个表,在navicat中没有直接查哪些表有指定字段名的功能。这是只能用sql来查。 1.(按字段名查表)查询哪些表有指定字段名(比如查字段名article_id)的SQL: SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME='article_id' 这个SQL能查出所有你当前打开的链接下的所有
oracle中系统表有哪些?
oracle中系统表有哪些?谁给份列表?
查看Oracle有哪些表或者试图
1、查询当前用户下,有哪些表 SELECT * FROM user_tables   2、查询当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的] SELECT * FROM all_tables   3、查询当前数据库所有的表, 需要你有 DBA 的权限 SELECT * FROM dba_tables   4、查询当前用户下的所有对象 select ...
ORACLE查找用户有哪些表
select table_name from dba_tables where owner='用户名';
Oracle查询、修改表序列下一个值
select SEQ_NAME.nextval from dual; --查询当前表序列号下一个值 (SEQ_NAME 修改为你自己的名称) alter sequence SEQ_INDUSTRY_TRADE increment BY 1000; --修改下一个值,1000为在原基础增加1000 select SEQ_INDUSTRY_TRADE.nextval from dual;...
oracle的日期函数有哪些?
我才学oracle数据库想知道oracle中的数据函数有哪些?
oracle的内部函数有哪些?
oracle的内部函数有哪些?
oracle有哪些知识
初学者....................
Oracle有哪些认证?
哪些比较好考的?
Oracle数据库备份有哪些?
Oracle数据库备份有哪些?导入导出的概念?rn 谁晓得,说下啦
查询哪些表没有聚集索引
--查询哪些表没有聚集索引 SELECT * FROM ( SELECT t.name AS tableName,(SELECT TOP 1 name FROM sys.indexes AS i WHERE i.type_desc='CLUSTERED' AND t.[object_id]=i.[object_id]) AS clusteredIndexName FROM sys.table
Oracle主从表有外键时查询
表MAT_DFT_MASTER ,表MAT_DFT_DETAILrn其中表MAT_DFT_MASTER设了Indexes: PK(header_id),UK(ser_part_id,test_date)。rn而表MAT_DFT_DETAIL定义了:rnalter table MAT_DFT_DETAILrn add foreign key (header_id)rn references MAT_DFT_MASTER(header_id) on delete cascade;rn现在MAT_DFT_DETAIL中有300万条记录,用此查询很慢,有时慢得像电脑死机!!!rn我用select a.*,b.* from a,b wher a.header_id=b.header_id(+) where....rn类似这样的statement查询的。请问有没有好建议???分不够再加
oracle查询一个表有几个字段
oracle查询一个表有几个字段
oracle用什莫工具看数据库有哪些表,某个表有哪些数据
只有用SQLPLUS写SQL语句看吗
在ORACLE中,DUAL这个表有什么用?
在SQLPLUS中当我执行命令:(sys@rdb)rnSQL> select user from dual;rn结果:rnUSERrn-----------------------------rnSYSrnrnSQL> SELECT * FROM DUAL;rn结果:rnDrn-rnXrn在触发器中使用:(选自ORACLE8I DBA宝典P377)rncreate or replace trigger set_check_nornbefore insert on checkup_historyrnfor each rowrndeclare rn next_checkup_no number;rnbeginrn select checkup_no_seq.nextvalrn into next_checkup_norn from dual;-------(就是这个DUAL表)rnrn :new.checkup_no:=next_checkup_no;rnend;rn在上面出现的三个DUAL表它们究竟有什么用?rn
在ORACLE中,DUAL这个表有什么用??
在SQLPLUS中当我执行命令:(sys@rdb)rnSQL> select user from dual;rn结果:rnUSERrn-----------------------------rnSYSrnrnSQL> SELECT * FROM DUAL;rn结果:rnDrn-rnXrn在触发器中使用:(选自ORACLE8I DBA宝典P377)rncreate or replace trigger set_check_nornbefore insert on checkup_historyrnfor each rowrndeclare rn next_checkup_no number;rnbeginrn select checkup_no_seq.nextvalrn into next_checkup_norn from dual;-------(就是这个DUAL表)rnrn :new.checkup_no:=next_checkup_no;rnend;rn在上面出现的三个DUAL表它们究竟有什么用?rn
oracle表查询(六)
oracle表查询(六) 补充一些子查询的知识: select a1.ename,a1.sal,a1.deptno,a2.mysal from emp a1,(select deptno,avg(sal) mysal from emp group by deptno)a2 where a1.deptno=a2.deptno and a1.sal>a2.mysal; 显示高于自
Oracle查询外键关联的表
select * from user_cons_columns cl where cl.constraint_name = 'FK_Reference_8';   FK_Reference_8 为外键名称
Oracle系统表查询
数据字典dict总是属于Oracle用户sys的。     1、用户:      select username from dba_users;     改口令      alter user spgroup identified by spgtest;      2、表空间:      select * from dba_data_files;      select * from dba_ta...
oracle查询所有表
create or replace function count_rows(table_name in varchar2, owner in varchar2 default null) return number authid current_user IS num_rows number; stmt varchar2(2000); begin if owner is null t
Oracle查询树结构表
对于树状结构的表,即有记录父节点或子节点的表,如果不知道到底有多少层级,Oracle有自带的函数可以处理查询
oracle表的简单查询
desc emp显示emp表的结构   dual 是一个特殊的表,里面没有任何数据   select 语句:计算数学表达式:select from 3*2 from dual    重命名的形式输出: select 3*2 as mult_result from dual; 注意中间的as可以省略不写,且中间不能用空格隔开(eg:mult result );要想用空格隔开mult ...
Oracle常用表查询
[code="SQL"] --查看所有的数据文件 select * from DBA_DATA_FILES ; --查看当前用户 select * from user_users; --查看所有用户 select * from all_users; --查看用户或角色系统权限 select * from user_sys_privs; --查看角色所包含的权限 ...
oracle 两表查询
mssql 过程:rnrnrnCREATE procedure dbo.PTR_add_commit (@mid VARCHAR(50)rn ,@UserID VARCHAR(50)rn ,@code VARCHAR(50)rn ,@Barcode VARCHAR(50)rn ,@Qty intrn ,@Msg VARCHAR(100) output) asrnBEGINrn if not exists(select * from pt_wh_goods where Barcode=@Barcode)rn beginrn set @Msg = '条码(' + ltrim(rtrim(@Barcode)) + ')不存在!'rn select @Msg[Msg]rn return -1rn endrnrn if exists(select * from pt_wh_add_items where Order_code=@code and Barcode=@Barcode)rn update pt_wh_add_items set order_qty=order_qty+@Qty where Order_code=@code and Barcode=@Barcodern elsern insert into pt_wh_add_items(order_code,barcode,order_Qty) values(@code, @Barcode, @Qty)rnrn select a.Barcode 商品条码, b.Name 商品名称,a.order_qty 数量 from pt_wh_add_items a left join pt_wh_goods b on b.Barcode=a.Barcode rn where order_code=@codern RETURN 0rnrn ENDrnrnrnrnrn我下的相同功能的oracle 过程:rnCREATE OR REPLACE PROCEDURE "SYSTEM"."PTR_ADD_COMMIT" (mid rn VARCHARrn ,UserID varchar2rn ,code varchar2rn ,Barcode varchar2rn ,Qty numberrn ,Msg out varchar2 ) asrn jil number;rn name varchar2 (50);rn Package1 varchar2 (50); rn rnBEGINrn select count(*) into jil from "SYSTEM"."pt_wh_goods" where BARCODE=Barcode;rn if jil=0 thenrn Msg := '条码(' + ltrim(rtrim(Barcode)) + ')不存在!';rn rn end IF;rnrn select count(*) into jil from "SYSTEM"."pt_wh_add_items" where ORDER_CODE=code and BARCODE=Barcode;rn if jil>0 THENrn update "SYSTEM"."pt_wh_add_items" set ORDER_QTY=order_qty+Qty where ORDER_CODE=code and BARCODE=Barcode;rn elsern insert into "SYSTEM"."pt_wh_add_items"(ORDER_CODE,BARCODE,ORDER_QTY) values(code, Barcode, Qty);rn END IF;rn rn select a.BARCODE as 商品条码, b.NAME as 商品名称,a.ORDER_QTY as 数量 from "SYSTEM"."pt_wh_add_items" a left join "SYSTEM"."pt_wh_goods" b on b.BARCODE=a.BARCODE rn where ORDER_CODE=code;rn rnrn END;rnrn select a.BARCODE as 商品条码, b.NAME as 商品名称,a.ORDER_QTY as 数量 from "SYSTEM"."pt_wh_add_items" a left join "SYSTEM"."pt_wh_goods" b on b.BARCODE=a.BARCODE rn where ORDER_CODE=code;rn这里报select 缺少into子句错误,请问这是怎么回事呢?要实现mssql同样的功能,这里怎么写呢?
Oracle表查询问题
test1表:rnname字段值:zhangsan,lisi,wangwu;rntest2表:rnname字段值:zhangsan,wangwu,zhaoliu;rnrn现在的问题是我要获得test1表中在test2表中不存在的name值(也就是lisi)。rn除了用not in以外(数据量比较大性能不怎么好)。rn还可以怎么写???
Oracle数据字典表查询
Oracle数据字典表查询 用户 角色 表空间权限 用户特权 序列号 索引 视图 存储过程 约束条件
查询oracle表大小
昨天老大叫我查几个表的大小。我以为很简单直接用rnselect segment_name, bytes rnfrom user_segments rnwhere segment_type = 'TABLE'; rn这样的语句来查。rn可是结果却发现查不到很多表,rn可是那些表明明是存在的啊。rn会不会是由于用户不同,所以不让查。rn还有另外一个问题就是数据库里面的视图的大小能查的么?rn
oracle表查询
[size=12px]如果只知道一个字段名字但不知道是哪个表中的,如何从若干表中查询出到底是哪个表的字段?rn谢谢!!![/size]
oracle 表空查询
表空间、临时表空间检查。
oracle 表查询笔记
[b]简单查询[/b] [quote]从数据库中查询数据,需要执行SELECT语句。当执行select语句时,既可以查询所有列,也可以根据需求查询特定列;既可以使用表达式,也可以使用函数处理null。基本查询语句如下: select *|{[distinct] column|expression [alias],...} from table; 如上所示,table用于...
oracle系统表查询
oracle系统表查询,详细讲解各个系统表的使用
Oracle跨表查询
1:首先建立dblink:        create database link link_name                            connect to 对方数据库用户名 identified by '对方数据库用户密码'                          using '对方数据库ip:端口/实例名'; 2:查询语句:       (1...
oracle 查询死锁 表
--查询死锁 表 查出来的东西 ,直接 copy 出来执行,就能杀死了。还不谢谢我。 SELECT lo.SESSION_ID ,s.SERIAL#,ao.object_name,'ALTER system KILL session '''||lo.SESSION_ID||','||s.SERIAL#||''';'   FROM v$locked_object lo, dba_objects ao...
oracle表查询(5)
查看表结构 SQl>desc dept; 查看所有列 select * from dept; 查询指定列 select ename,sal,job from emp;   查询emp表中的sal、job列 如何取消重复行 select distinct deptno,job from emp; set timing on; 打开显示操作时间的开关(就是每次查询所用
oracle表的复杂查询
命名列的别名可以带as,也可以不带as,命名表的别名不能 带as   数据库的引擎在解析sql语句的时候是按照从左到右的顺序进行解析的,所以对于精确匹配条件应该写在左边   *当某个查询语句中有多个查询条件,且其中的一个查询条件中出现了选择类型的语句时,此时该条件要用括号括起来,否则会出错的 eg:查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名的首写字母为大写的...
Oracle表管理查询
Oracle表的管理和查询,是本人平时学习积累的心血,现在贡献出来啦。
oracle表查询(2)
http://taeky.iteye.com/blog/609924
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview