Oracle11g 用于从包含100个字段的大型表中搜索单个字符的高效查询

Oracle11g 用于从包含100个字段的大型表中搜索单个字符的高效查询,oracle11g,Oracle11g,我有一个有100个字段的表。该表有大约1000条记录。我想知道任何记录的任何字段中是否有字符“”。由于有大量字段(100个),我想知道如何形成查询,以了解任何记录中的任何字段是否包含字符“”。我不应该使用动态SQL:(好的,如果不使用动态SQL,您可以像这样构建所需的静态SQL: select 'select pk, ''' || column_name || ''' col from mytable where ' || column_name || ' li

我有一个有100个字段的表。该表有大约1000条记录。我想知道任何记录的任何字段中是否有字符“”。由于有大量字段(100个),我想知道如何形成查询,以了解任何记录中的任何字段是否包含字符“”。我不应该使用动态SQL:(

好的,如果不使用动态SQL,您可以像这样构建所需的静态SQL:

select 'select pk, ''' || column_name
        || ''' col from mytable where ' 
        || column_name || ' like ''%x%'';'
from user_tab_columns
where table_name = 'MYTABLE';
这将为每列输出一个select语句,然后可以将其作为SQL Plus脚本运行:

select pk, 'PK' col from mytable where PK like '%x%';
select pk, 'COL2' col from mytable where COL2 like '%x%';
select pk, 'COL3' col from mytable where COL3 like '%x%';