You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在emcli list命令中指定多个目标类型的搜索条件?

使用EMCLI查询Targets资源时合并搜索条件的方法

问题场景

尝试用emcli list命令查询Targets资源时,单独指定TARGET_TYPE='oracle_database'或TARGET_TYPE='oracle_pdb'都能返回预期结果,但添加两个-search参数会返回0行;使用-search="TARGET_TYPE like 'oracle_%'"又会获取超出数据库目标范围的资源,需要将两个搜索条件合并为一个精准匹配的查询。

单个目标类型查询的正确命令

  • 查询Oracle数据库实例:
emcli list -resource="Targets" \
-bind="TargetType='oracle_database'" \
-columns="TARGET_NAME:20,TARGET_TYPE:20" \
-search="TARGET_TYPE='oracle_database'"
  • 查询Oracle PDB:
emcli list -resource="Targets" \
-bind="TargetType='oracle_database'" \
-columns="TARGET_NAME:20,TARGET_TYPE:20" \
-search="TARGET_TYPE='oracle_pdb'"

错误的多参数用法

使用两个-search参数会导致逻辑冲突(等同于TARGET_TYPE='oracle_database' AND TARGET_TYPE='oracle_pdb',没有目标能同时满足),因此返回0行:

emcli list -resource="Targets" \
-bind="TargetType='oracle_database'" \
-columns="TARGET_NAME:20,TARGET_TYPE:20" \
-search="TARGET_TYPE='oracle_database'" \
-search="TARGET_TYPE='oracle_pdb'"

解决方案:使用IN操作符合并条件

EMCLI的-search参数支持SQL风格的IN操作符,可一次性指定多个目标类型,实现精准匹配:

emcli list -resource="Targets" \
-columns="TARGET_NAME:20,TARGET_TYPE:20" \
-search="TARGET_TYPE IN ('oracle_database', 'oracle_pdb')"

说明:原命令中的-bind参数在此场景下无需保留,因为搜索条件已明确指定目标类型;若业务场景需要绑定变量,也可调整为绑定包含多个值的变量,但直接使用IN更简洁高效。

内容的提问来源于stack exchange,提问作者user13708337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 12:33:24