如何用SQL语句全局搜

发布网友 发布时间:2022-04-22 01:11

我来回答

3个回答

热心网友 时间:2024-01-05 06:42

create or replace procere p_cur(tabName in varchar2, --要查询的表名
v_value in varchar2, --查询的字符串
p_cursor out testpackage.test_cursor) AS
v_NAME VARCHAR2(20); --要查询表的列名
CURSOR ct(tabName1 varchar2) IS
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = tabName1; --指向查询表结构信息的游标
SQL_string varchar2(32767); --生成查询语句
begin
OPEN ct(tabName);
SQL_string := 'SELECT * FROM ' || tabName || ' WHERE 1=0 ';
LOOP
FETCH ct
INTO v_NAME;
EXIT WHEN ct%NOTFOUND;
SQL_string := SQL_string || ' OR TO_CHAR(' || v_NAME || ') LIKE (''%' ||
v_value || '%'')';
END LOOP;
CLOSE ct;
dbms_output.put_line(SQL_string);
open p_cursor for SQL_string;
close p_cursor;
end p_cur;

热心网友 时间:2024-01-05 06:42

1 查出该表的所有列(字符串类型的)
2 遍历每个列,动态构造SQL的筛选条件 , like '%aa%'
3 执行SQL追问帮忙写下具体语句,谢谢。

热心网友 时间:2024-01-05 06:43

select * from AAA where a=aa or b=aa or c=aa

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com