如何用SQL语句全局搜

[复制链接]
查看11 | 回复2 | 2011-3-17 11:25:04 | 显示全部楼层 |阅读模式
例如:我有表AAA如下,列名为a b c,列内容如下:

a b c
aa bb cc
dd aa dd
cc bb dd

现在我想搜索出值为aa的行,结果为:
aa bb cc
dd aa dd

或者是值为bb的行,结果为:
aa bb cc
cc bb dd

因为一般搜索都要指定列,也就是a=aa,b=aa这样,如果全局搜索的话,应该怎么写呢?
回复

使用道具 举报

千问 | 2011-3-17 11:25:04 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">create or replace procedure p_cur(tabNamein varchar2, --要查询的表名

v_valuein 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;
回复

使用道具 举报

千问 | 2011-3-17 11:25:04 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1377346\">帮忙写下具体语句,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行