intersystems cache是 否有通配符来搜索全局节点?

问题描述 投票:1回答:2

有时我想用通配符搜索一个字符,我不想搜索所有全局节点来查找特定字符。所以我想知道我可以用来匹配全局节点上的特定字符的任何通配符。好像我想用^G("abc")^G找到^G("*s*")

intersystems-cache intersystems
2个回答
2
投票

没有办法使用低级$ order / $查询函数,正如@ kazamatzuri所说,但你可以使用%Library.Global:获取类查询 - 第一个参数是命名空间,第二个参数是模式字符串。您可以在类本身或https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_managing#GGBL_managing_view中获得有关模式语法的文档

下面是一个使用CALL语句的示例 - 假设我们想要在以“D”开头的USER命名空间的^%SYS全局中查找所有全局节点:

DEV>d $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------

The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]DEV>>call %Library.Global_Get('USER','^%SYS("D":"E"')          
1.  call %Library.Global_Get('USER','^%SYS("D":"E"')



Dumping result #1
Name    Value   Name Format Value Format    Permissions
^%SYS("DBRefByName","CONFIG-ANALYTICS") ^^f:\trakcare\config\db\analytics\  1
^%SYS("DBRefByName","CONFIG-APPSYS")    ^^f:\trakcare\config\db\appsys\ 1   1
^%SYS("DBRefByName","CONFIG-AUDIT0")    ^^f:\trakcare\config\db\audit0\ 1   1
^%SYS("DBRefByName","CONFIG-AUDIT1")    ^^f:\trakcare\config\db\audit1\ 1   1
^%SYS("DBRefByName","CONFIG-AUDIT2")    ^^f:\trakcare\config\db\audit2\ 1   1

0
投票

没有。

您必须使用$ ORDER或$ QUERY自己实现。虽然有模式匹配和正则表达式工具。

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.