1
81
报价:
列不是对象。如果您的意思是希望列名类似于“%dtn%”,则需要的查询是:
但如果“dtn”字符串只是你的猜测,那可能不会有帮助。 顺便问一下,您如何确定'1/22/2008p09rr8'是直接从单个列中选择的值?如果您根本不知道它来自哪里,那么它可能是几列的串联,或者是某个函数的结果,或者是嵌套表对象中的一个值。因此,您可能正在进行一场疯狂的追逐,试图检查每一列的值。您不能从显示该值的任何客户机应用程序开始,并尝试找出它使用什么查询来获取该值吗? 无论如何,DICIU的答案给出了一种生成SQL查询的方法,以检查每个表的每一列的值。您还可以使用PL/SQL块和动态SQL在一个SQL会话中完成类似的工作。下面是一些仓促编写的代码:
你也可以通过一些方法提高效率。 在这种情况下,考虑到您要查找的值,您可以清楚地删除任何数字或日期类型的列,这将减少查询的数量。甚至可以将其限制为类型类似于“%char%”的列。 您可以这样为每个表生成一个查询,而不是每列一个查询:
|
2
29
我对上面的代码做了一些修改,以使它在只搜索一个所有者时更快地工作。 您只需更改3个变量v_owner、v_data_type和v_search_string即可满足您的搜索需求。
|
3
7
是的,您可以,您的DBA会讨厌您,并且会发现您将您的鞋子钉在地板上,因为这将导致大量的I/O,并在缓存清除时真正降低数据库性能。
首先。
我将从运行查询开始,使用
|
4
7
我知道这是个老话题。但我看到对这个问题的评论,问是否可以在
下面的演示是为了 Search for a VALUE in all COLUMNS of all TABLES in an entire SCHEMA :
我们来看看价值
我们来看看价值
|
5
6
下面是另一个经过修改的版本,它将比较较低的子字符串匹配。这在Oracle11g中有效。
|
6
5
我会这样做(生成您需要的所有选择)。 稍后可以将它们馈送到sqlplus:
它产生:
它的作用是-为每一个
|
7
4
如果我们知道表名和列名,但想知道每个模式的字符串出现的次数:
|
8
3
我修改了Flood的脚本,以便为每个表执行一次,而不是为每个表的每一列执行一次,以便更快地执行。它需要Oracle 11g或更高版本。
|
9
2
搜索整个数据库的过程:
EXECUTE语句
样本结果
|
10
2
修改代码以不敏感地使用like查询而不是查找完全匹配的大小写…
|
11
1
我不想在SQL Promprt上有一个简单的解决方案。然而,有相当多的工具,比如toad和pl/sql开发人员,他们有一个GUI,用户可以在其中输入要搜索的字符串,并将返回找到这个字符串的表/过程/对象。 |
12
1
有一些免费的工具可以进行这种搜索,例如,这一个很好地工作,源代码可用: https://sites.google.com/site/freejansoft/dbsearch 您需要Oracle ODBC驱动程序和DSN才能使用此工具。 |
13
1
我对@lalit kumars的回答有以下问题:
解决方案是:
|
14
0
--它运行完毕--没有错误
|
15
0
借来,稍加加强和简化 this Blog post 下面的简单SQL语句似乎可以很好地完成这项工作:
|
vytaute · 返回表类型时Oracle函数中的类型错误 2 年前 |
BetaRide · Oracle架构用户无法在过程中创建表 6 年前 |
F.donoso · 嵌套的隐式游标未在数据中清除 6 年前 |
ADH · 如何在网格中调用过程和输出结果 6 年前 |