C# 将XML从Oracle过程返回到C restful服务

C# 将XML从Oracle过程返回到C restful服务,c#,xml,oracle,rest,stored-procedures,C#,Xml,Oracle,Rest,Stored Procedures,我试图构建一个C restful服务,它调用Oracle过程并返回XML结果。我已经在SQLDeveloper中成功地测试了这个过程,并且可以连接到数据库。我收到oracle错误ORA-01013:用户在运行服务时请求取消当前操作。调用ExecuteReader时会发生错误 .Net版本2010 Oracle 11.2版 完全错误 Oracle.ManagedDataAccess.Client.OracleException was caught Message=ORA-01013: use

我试图构建一个C restful服务,它调用Oracle过程并返回XML结果。我已经在SQLDeveloper中成功地测试了这个过程,并且可以连接到数据库。我收到oracle错误ORA-01013:用户在运行服务时请求取消当前操作。调用ExecuteReader时会发生错误

.Net版本2010

Oracle 11.2版

完全错误

Oracle.ManagedDataAccess.Client.OracleException was caught
  Message=ORA-01013: user requested cancel of current operation
  Source=Oracle Data Provider for .NET, Managed Driver
  ErrorCode=1013
  DataSource=""
  Number=1013
  Procedure=""
  StackTrace:
   at OracleInternal.ServiceObjects.OracleCommandImpl.VerifyExecution(OracleConnectionImpl connectionImpl, Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone)
   at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteReader(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, OracleDataReaderImpl& rdrImpl, Int32 longFetchSize, Int32 lobPrefetchSize, OracleDependencyImpl orclDependencyImpl, Int64[] scnForExecution, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, Boolean isDescribeOnly, Boolean isFromEF)
   at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
   at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader()
   at WcfDailyDataImporterRestService.DailyDataImporterRestService.GetIndividualFund(String FundNumber) in C:\Working\Source Code\WcfDailyDataImporterRestService\WcfDailyDataImporterRestService\DailyDataImporterRestService.cs:line 39
 InnerException: 
程序

create or replace
PROCEDURE SP_GETINDIVIDUALFUND(v_fundID IN VARCHAR2,
                             v_ResultSet OUT sp_GetResultSet.ResultSet) AS
BEGIN

  Open v_ResultSet FOR
  SELECT XMLELEMENT("ROOT",
           XMLAGG(XMLELEMENT("ROW",
             XMLELEMENT("FUNDNAME", A.FUNDNAME),
             XMLELEMENT("FUNDNUMBER", substr(A.FundStationFundNumber, 1, 4)),
             XMLELEMENT("SHARECLASS", A.SHARECLASS), 
             XMLELEMENT("ASOFDATE", B.ASOFDATE), 
             XMLELEMENT("NAV", B.NAV), 
             XMLELEMENT("NAVCHANGE", B.NAVCHANGE), 
             XMLELEMENT("INCEPTIONDATE", A.INCEPTIONDATE)
             )
           )
         )
  FROM TBL_FUND A, 
       TBL_FUNDDAILYINFO B
  WHERE A.FUNDID = B.FUNDID (+)
    AND substr(A.FundStationFundNumber, 1, 4) = v_fundID
    AND A.PRODUCTLINECODE = '3'
    AND (A.PRODUCTCATEGORYCODE <> '5'
    AND A.PRODUCTCATEGORYCODE <> '6'
    AND A.PRODUCTCATEGORYCODE <> '102')
  ORDER BY A.FUNDNAME, 
           A.SHARECLASS;
END;
我尝试过的事情

在过程中返回XmlType而不是游标 仅返回cmd.ExecuteNonQuery;同样的错误 添加cmd.CommandTimeout=5000;同样的错误 重新编译代码和过程。
谢谢您的帮助或建议。

明白了。我不得不改变我的程序如下

create or replace
PROCEDURE SP_GETINDIVIDUALFUND(v_fundID IN VARCHAR2,
                             v_ResultSet OUT sp_GetResultSet.ResultSet) AS
BEGIN
  Open v_ResultSet FOR
  SELECT dbms_xmlgen.getxml('select A.FUNDNAME, 
    substr(A.FundStationFundNumber, 1, 4) AS FundStationFundNumber, 
    A.SHARECLASS, 
    B.ASOFDATE, 
    B.NAV, 
    B.NAVCHANGE, 
    A.INCEPTIONDATE 
  FROM TBL_FUND A, 
       TBL_FUNDDAILYINFO B  
  WHERE A.FUNDID = B.FUNDID (+) 
    AND A.PRODUCTLINECODE = 3 
   AND (A.PRODUCTCATEGORYCODE <> 5
    AND A.PRODUCTCATEGORYCODE <> 6
    AND A.PRODUCTCATEGORYCODE <> 102)
  ORDER BY A.FUNDNAME, 
           A.SHARECLASS') 
  xml FROM dual;
END;
create or replace
PROCEDURE SP_GETINDIVIDUALFUND(v_fundID IN VARCHAR2,
                             v_ResultSet OUT sp_GetResultSet.ResultSet) AS
BEGIN
  Open v_ResultSet FOR
  SELECT dbms_xmlgen.getxml('select A.FUNDNAME, 
    substr(A.FundStationFundNumber, 1, 4) AS FundStationFundNumber, 
    A.SHARECLASS, 
    B.ASOFDATE, 
    B.NAV, 
    B.NAVCHANGE, 
    A.INCEPTIONDATE 
  FROM TBL_FUND A, 
       TBL_FUNDDAILYINFO B  
  WHERE A.FUNDID = B.FUNDID (+) 
    AND A.PRODUCTLINECODE = 3 
   AND (A.PRODUCTCATEGORYCODE <> 5
    AND A.PRODUCTCATEGORYCODE <> 6
    AND A.PRODUCTCATEGORYCODE <> 102)
  ORDER BY A.FUNDNAME, 
           A.SHARECLASS') 
  xml FROM dual;
END;