8

你好,

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

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

我试着通过我的 ide[]:

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

并作为一个字符串

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

当参数是字符串时不返回任何内容,如果是 long[] 则返回此 oracle 错误:

“Oracle.DataAccess.Client.OracleException:ORA-00932:tipos de dados 不一致:esperava NUMBER obteve BINARY”

有人可以帮助我吗?

4

1 回答 1

14

使用SetParameterList而不是SetParameter.

于 2010-05-03T14:37:48.740 回答