当前位置:网站首页> 在Oracle表中进行关键词搜索的过程
在Oracle表中进行关键词搜索的过程
2022-06-10 20:29:00 【1024问】
在Oracle表中的关键词搜索
在Oracle数据库中,我们可以很容易地在模式内的表中找到我们正在寻找的文本或关键词。
结果部分。
在Oracle表中的关键词搜索在Oracle数据库中,我们可以很容易地在模式内的表中找到我们正在寻找的文本或关键词。请阅读以了解该过程的步骤。
在Oracle数据库中,我们可以很容易地在模式内的表中找到我们要找的文本或关键词。由于我们可以搜索模式中的所有表,我们也可以在属于该模式的所需表内进行搜索。
如下面的PL/SQL块所示,我们要搜索的文本/关键词是在相关表的varchar列上进行的。
首先,我们在PL/SQL代码块的DECLARATION部分指定 "p_search_text" -->要搜索的常量文本。
在最下面一行,我们指定SCHEMA NAME为一个常量。
在下一行中,我们指定了TABLE NAME。
当我们把TABLE NAME字段传递为空时,我们搜索该模式中的所有表。
如果我们把TABLE NAME传满,我们应该注意该模式中的表。否则,我们的搜索将找不到任何记录。
如上所述输入我们的定义后,我们可以通过Oracle SQL Developer或Toad运行下面的PL/SQL块。
PLSQL
DECLARE p_search_text CONSTANT VARCHAR2 (1000) := 'SAMPLE SEARCH WRITE'; p_schema_name CONSTANT VARCHAR2 (1000) := 'SAMPLE SCHEMA NAME'; p_table_name CONSTANT VARCHAR2 (1000) := 'SAMPLE TABLE NAME';-- NULL (If FULL will work, give the table name null) TYPE r_column_data IS RECORD ( column_name SYS.DBA_TAB_COLUMNS.COLUMN_NAME%TYPE ); TYPE tr_column_data IS TABLE OF r_column_data INDEX BY PLS_INTEGER; ltr_column_data tr_column_data; TYPE tr_table IS TABLE OF VARCHAR2 (200) INDEX BY PLS_INTEGER; l_sql VARCHAR2 (1000); l_count NUMBER; ltr_table tr_table; l_found NUMBER := 0; l_column_name VARCHAR2 (100);BEGIN SELECT table_name BULK COLLECT INTO ltr_table FROM dba_tables WHERE owner = p_schema_name AND table_name LIKE '' || p_table_name || '' || '%' AND ROWNUM <= 19999 ORDER BY 1; DBMS_APPLICATION_INFO.set_module ('PV_FINDER', NULL); FOR i IN 1 .. ltr_table.COUNT LOOP DBMS_APPLICATION_INFO.set_client_info ( i || '/' || ltr_table.COUNT || ' -> ' || ltr_table (i)); SELECT col.column_name BULK COLLECT INTO ltr_column_data FROM sys.dba_tab_columns col INNER JOIN sys.dba_tables t ON col.owner = t.owner AND col.table_name = t.table_name WHERE col.table_name = ltr_table (i) AND col.DATA_TYPE = 'VARCHAR2' ORDER BY col.column_id; FOR j IN 1 .. ltr_column_data.COUNT LOOP DBMS_APPLICATION_INFO.set_client_info ( j || '/' || ltr_column_data.COUNT || ' -> ' || ltr_column_data (j).column_name); l_sql := 'SELECT /*+ PARALLEL (A 8)*/ count(1) from ' || p_schema_name || '.' || ltr_table (i) || ' A WHERE ' || ltr_column_data (j).column_name || ' =''' || p_search_text || ''''; EXECUTE IMMEDIATE l_sql INTO l_count; IF l_count > 0 THEN IF l_found = 0 THEN DBMS_OUTPUT.put_line ( 'Search Keyword: ' || p_search_text); DBMS_OUTPUT.put_line ( '-------------------------------------------'); END IF; DBMS_OUTPUT.put_line ('table name found : '||ltr_table (i) ); DBMS_OUTPUT.put_line ('column name found : ' || ltr_column_data (j).column_name); DBMS_OUTPUT.put_line ('count : ' || l_count); DBMS_OUTPUT.put_line ('sql name : ' || l_sql); DBMS_OUTPUT.put_line ('*****'); l_found := l_found + 1; END IF; END LOOP; END LOOP; DBMS_APPLICATION_INFO.set_module (NULL, NULL); DBMS_APPLICATION_INFO.set_client_info (NULL); DBMS_OUTPUT.put_line ('-------------------------------------------'); DBMS_OUTPUT.put_line ('total number of tables searched : ' || ltr_table.COUNT); DBMS_OUTPUT.put_line ('total number of tables found : ' || l_found);END;/*select module,client_info from v$session where module like '%PV_FINDER%'*/结果部分。如果我们搜索的关键词/文本在相关的表中找到了,找到的表的名称和找到的列的名称,数量,以及查询信息都会被写出来。
在底部是一般的总信息。我们可以看到搜索到的表的总数以及这些表中有多少被找到。
Search Keyword: SAMPLE SEARCH KEYWORD-------------------------------------------table name found : TABLE - 1column name found : COLUMN NAME count : 4sql name : SELECT /*+ PARALLEL (A 8)*/ count(1) from SCHEMA_NAME.TABLE-1 A WHERE TABLE-1.COLUMN ='SAMPLE SEARCH KEYWORD'*****table name found : TABLE - 2column name found : COLUMN NAME count : 2sql name : SELECT /*+ PARALLEL (A 8)*/ count(1) from SCHEMA_NAME.TABLE-2 A WHERE TABLE-1.COLUMN ='SAMPLE SEARCH KEYWORD'*****table name found : TABLE - 3column name found : COLUMN NAME count : 2sql name : SELECT /*+ PARALLEL (A 8)*/ count(1) from SCHEMA_NAME.TABLE-3 A WHERE TABLE-1.COLUMN ='SAMPLE SEARCH KEYWORD'*****table name found : TABLE - 4column name found : COLUMN NAME count : 2sql name : SELECT /*+ PARALLEL (A 8)*/ count(1) from SCHEMA_NAME.TABLE-4 A WHERE TABLE-1.COLUMN ='SAMPLE SEARCH KEYWORD'*****-------------------------------------------total number of tables searched : 72total number of tables found : 4oracle, plsql, oracle数据库, oracle表, 关键字搜索
DZone贡献者所表达的观点属于他们自己。
到此这篇关于在Oracle表中进行关键词搜索的过程的文章就介绍到这了,更多相关Oracle关键词搜索内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
边栏推荐
- 蛮力法/1~n的幂集 v4 递归
- 防抖和节流
- 72. editing distance ●●
- Redis cache breakdown
- Software definition boundary (SDP)
- Identity and access management (IAM)
- Power consumption development experience sharing: design power consumption board
- C language -- 8 familiar keywords
- Acl2022 | bert2bert: an efficient pre training method of parameter reuse, which significantly reduces the training cost of oversized models
- C language -- 11 branch statement if else
猜你喜欢
![[qingniaochangping campus of Peking University] the coordinated development of vocational education and general education, will this year's high school entrance examination be easy?](/img/3a/1376593d02adf29a1c37d894dcc0fa.png)
[qingniaochangping campus of Peking University] the coordinated development of vocational education and general education, will this year's high school entrance examination be easy?

【北大青鸟昌平校区】职教与普教协调发展,今年的中考会容易吗?

标配双安全气囊,价格屠夫长安Lumin 4.89万起售

Introduction to database system -- Chapter 1 -- Introduction (important knowledge points)

In 2021, the average salary will be released, and the IT industry will not be surprised

Vissim仿真快速入门

Test APK exception control netlocation attacker development

Meetup预告:Linkis新版本介绍以及DSS的应用实践

Monitoring is easy to create a "quasi ecological" pattern and empower Xinchuang to "replace"

Niuke.com: numbers that appear more than half of the times in the array
随机推荐
H265 Nalu类型判断及 sps 数据解析
LeetCode 进阶之路 - 搜索插入位置
72. editing distance ●●
保姆级教程:如何成为Apache Linkis文档贡献者
目标检测相关概念的理解
异步、线程池(CompletableFuture)
Notes to entry: do I need to know programming for O & M?
LeetCode 进阶之路 - 125.验证回文串
入行须知:运维需要懂编程吗?
Use DAP link to download the executable file separately to the mm32f5 microcontroller
编程式导航路由跳转到当前路由(参数不变), 多次执行会抛出NavigationDuplicated的警告错误?
Asynchronous, thread pool (completablefuture)
Serial Print() and serial The difference of write() function, and the problem of hexadecimal and string sending and receiving format in serial port communication and detailed explanation of the conver
^29事件循环模型
Leetcode advanced path - Search insertion location
Interview Essentials - basic knowledge of synchronized underlying principles
Qingniao Changping campus of Peking University: can I learn UI with a high school degree?
简解深度学习Attention
^30h5 web worker multithreading
app測試用例