我有一个在 Oracle 数据库之上运行的 OData 服务。我可以这样查询:
http://localhost:4930/Oracle.svc/XXKE_L2E_ADDRESSES_V%28%29?
$filter=PARTY_ID eq 10925&$select=*
然后一切正常。
对于以下内容,一切正常(所有字段都不包含空值):
http://localhost:4930/Oracle.svc/XXKE_L2E_ADDRESSES_V%28%29?
$filter=PARTY_ID eq 10925&
$select=ADDRESS_ID,PARTY_ID,CITY,ADDRESS1,PARTY_NAME
但以下失败(ADDRESS2 是一个包含 null 的字段):
http://localhost:4930/Oracle.svc/XXKE_L2E_ADDRESSES_V%28%29?
$filter=PARTY_ID eq 10925&
$select=ADDRESS_ID,PARTY_ID,CITY,ADDRESS1,PARTY_NAME,ADDRESS2
我得到的回应是:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code></code>
<message xml:lang="pl-PL">An error occurred while processing this request.</message>
<innererror>
<message>Value cannot be null.
Parameter name: value</message>
<type>System.ArgumentNullException</type>
<stacktrace> at System.Data.Services.WebUtil.CheckArgumentNull[T](T value, String parameterName)
at System.Data.Services.Internal.ProjectedWrapper.set_PropertyNameList(String value)
at lambda_method(Closure , Shaper )
at System.Data.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
at System.Data.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()
at System.Data.Services.Internal.ProjectedWrapper.EnumeratorWrapper.MoveNext()
at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService)
at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)
at System.Data.Services.DataService`1.HandleRequest()</stacktrace>
</innererror>
</error>
为什么我会收到错误消息?null 有什么问题?当我指定时,我得到它没有问题$select=*
。如何克服这个问题?
编辑:
我发现我面临的问题与此处描述的完全相同:https ://forums.oracle.com/forums/thread.jspa?threadID=2362250 。我删除了这些字段,所以只有 8 个,然后我可以全选。如果我有 9 个字段,我一次只能选择其中的 6 个。如果我有 10 个字段,我一次只能选择其中的 3 个。
如果有人有解决方案,我将不胜感激。