如何将参数传递给 IN 运算符?

发布于 2024-08-31 03:18:31 字数 765 浏览 10 评论 0原文

我正在尝试为命名查询(本机 SQL)传递一个长数组以在 IN 语句中使用: 像这样:

(...) WHERE Identificator IN (:pIdes)

我尝试将我的 ides 作为 long[]:

 ctx.GetNamedQuery("NamedQueryName")                                          
                   .SetParameter<long[]>("pIdes", Identificators)
                   .List<EmpreendimentoInputReport>();

和字符串

 ctx.GetNamedQuery("NamedQueryName")                                          
                   .SetParameter<string>("pIdes", Identificators)
                   .List<EmpreendimentoInputReport>();

传递当参数是字符串时不返回任何内容,whem 是 long[] 返回此 Oracle 错误:

“Oracle.DataAccess.Client.OracleException: ORA-00932: 提示不一致: esperava NUMBER obteve BINARY"

I'm Trying, pass a long array for a named query (native SQL) for to use in an IN STATEMENT:
Like this:

(...)
WHERE Identificator IN (:pIdes)

I tried pass my ides as long[]:

 ctx.GetNamedQuery("NamedQueryName")                                          
                   .SetParameter<long[]>("pIdes", Identificators)
                   .List<EmpreendimentoInputReport>();

and as a string

 ctx.GetNamedQuery("NamedQueryName")                                          
                   .SetParameter<string>("pIdes", Identificators)
                   .List<EmpreendimentoInputReport>();

When the parameter is a string return nothing, whem is a long[] return this Oracle error:

"Oracle.DataAccess.Client.OracleException: ORA-00932: tipos de dados inconsistentes: esperava NUMBER obteve BINARY"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫﹏色ふ单纯 2024-09-07 03:18:31

使用 SetParameterList 而不是 SetParameter

Use SetParameterList instead of SetParameter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文