普适的SQL查询

时间:2014-02-06 16:08:13

标签: sql pervasive

有没有人有查询来搜索Pervasive数据库中所有表中的所有列以获取特定值?

我很难找到关于此的任何信息。

在sql server中看起来很容易,但在Pervasive中却没有。

2 个答案:

答案 0 :(得分:2)

您不需要存储过程。您可以使用此查询执行此操作:

select x$file.xf$name, X$Field.* from X$Field, X$File 
where xe$File = xf$id and 
xe$DataType < 200 
and xe$name = '<Column Name>'
order by xe$offset

更改为您要查找的列的名称。
例如,要查找名为“Name”的列,可以使用以下语句:

select x$file.xf$name, X$Field.* from X$Field, X$File 
where xe$File = xf$id and 
xe$DataType < 200 
and xe$name = 'Name'
order by xe$offset

结果是:

Xf$Name                 Xe$Id   Xe$File   Xe$Name                Xe$DataType   Xe$Offset   Xe$Size   Xe$Dec   Xe$Flags
====================   ======   =======   ====================   ===========   =========   =======   ======   ========
Course                     86        13   Name                             0           0         7        0          1
Dept                       92        14   Name                             0           0        20        0          1
Class                      68        12   Name                             0           4         7        0          1

答案 1 :(得分:1)

- 返回按表名排序的所有表的列表: 从X $文件订单中选择* xf $ name

- 返回所有列的列表(按顺序)及其名为“Person”的表的属性: 从X $ Field,X $ File中选择X $ Field。* 其中xe $ File = xf $ id和xf $ name ='Person'和xe $ DataType&lt; 200 按xe $ offset

排序

您可以使用某种存储过程来完成所有操作。这是一个SQL服务器存储过程,您可以将其用作指南。

http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm