Oracle.DataAccess.Client.OracleException ORA-00600: 内部错误代码,通过C#执行上面存储过程报错,而通过PLSQL执行不报错。谁知道原因。...

0B2P0UHCCP10Z;0B2P0UHCD5112;0B321BD91Q1XL;0B2P0XXSXH70Y;0B2P17IZ2M733;0B2P17IZ3I73O;0B2P0XSUOE0JM;0B2P0XSUUW0JX;0B2P19QDZG748;0B2P19QE0U74D;0B2P19QE1T74I;0B2P19QE2M74N;0B3114VEPK5HE;0B3114VES65HT;0B311AJAVM6BY;0B311AJAXG6CD;0B311AJAY06CQ;

 

 

CREATE OR REPLACE PROCEDURE SP_CA_EDI_TO_TXT(S_FILTERSTR IN VARCHAR2,
                                             S_ROLEID    IN VARCHAR2,
                                             S_USERID    IN VARCHAR2,
                                             RC1         OUT PACKAGE_FRTNET.REFCURSOR)
/*******************************************************
  **************************************************/
 IS

  V_INDEX  INTEGER;
  V_START  INTEGER;
  V_SUBSTR VARCHAR2(100);

BEGIN
  DELETE FROM TMP_RP_REQUEST_STR_LIST;
  IF (S_FILTERSTR IS NOT NULL) THEN
    V_START := 1;
    V_INDEX := INSTR(S_FILTERSTR, ';', V_START);
    WHILE (V_INDEX >= 0 AND V_INDEX > V_START) LOOP
      IF (V_INDEX = 0) THEN
        V_SUBSTR := SUBSTR(S_FILTERSTR,
                           V_START,
                           LENGTH(RTRIM(S_FILTERSTR)) - V_START + 1);
      ELSE
        V_SUBSTR := SUBSTR(S_FILTERSTR, V_START, V_INDEX - V_START);
      END IF;

      INSERT INTO TMP_RP_REQUEST_STR_LIST (REQUEST_KEY) VALUES (V_SUBSTR);

      V_START := V_INDEX + 1;
      V_INDEX := INSTR(S_FILTERSTR, ';', V_START);
    END LOOP;
  END IF;

  OPEN RC1 FOR
    SELECT CEII.SHIP_EN_NAME AS SHIPPER_NAME,
           CEII.VOYAGE_NO,
           CEII.CUSTOM_S_D_NO,
           A.CNT_NO,
           (SELECT F_LINK(CEICIN.CARGO_DESCRIPTION_CN)
              FROM CA_EDI_IFCSUM_CARGO_IN CEICIN
             WHERE CEICIN.EII_ID = CEII.EII_ID
             AND CEICIN.RECORD_TYPE='0') AS CARGO_DESCRIPTION_CN
      FROM CA_EDI_IFCSUM_IN CEII
      JOIN TMP_RP_REQUEST_STR_LIST TMP
        ON TMP.REQUEST_KEY = CEII.EII_ID
      LEFT JOIN (SELECT CEICI.EII_ID,
                        f_link_lob(CEICI.CNT_NO || '/' ||
                                   SUBSTR(CEICI.CNT_SIZE_TYPE, 0, 2) || '''' ||
                                   '   ') AS CNT_NO
                   FROM CA_EDI_IFCSUM_CNT_IN CEICI
                   JOIN TMP_RP_REQUEST_STR_LIST TMP
                     ON TMP.REQUEST_KEY = CEICI.EII_ID
                  GROUP BY CEICI.EII_ID) A
        ON A.EII_ID = CEII.EII_ID;
END;

 

通过C#执行上面存储过程报错,而通过PLSQL执行不报错。谁知道原因。

 

System.Exception:  内部错误代码, 参数: [kokegPinLob1], [], [], [], [], [], [], [] ---> Oracle.DataAccess.Client.OracleException ORA-00600: 内部错误代码, 参数: [kokegPinLob1], [], [], [], [], [], [], []    在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
   在 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   在 Oracle.DataAccess.Client.OracleDataReader.Read()
   在 FC.Server.DbAccess.CDbTransaction.FillDataTable(IDataReader reader, DataSet dataset, DataTableMappingCollection tableMappings, String tableName, Int32 intStartRecord, Int32 intMaxRecords)
   在 FC.Server.DbAccess.Oracle.COracleTransaction.DoQuery(String strCmdText, CDbParmCollection parameters, CommandType cmdtype, DataTableMappingCollection mappings, DataSet ds, Int32 startRecord, Int32 maxRecordCount, String tableName)
   --- 内部异常堆栈跟踪的结尾 ---
   在 FC.Server.DbAccess.Oracle.COracleTransaction.DoQuery(String strCmdText, CDbParmCollection parameters, CommandType cmdtype, DataTableMappingCollection mappings, DataSet ds, Int32 startRecord, Int32 maxRecordCount, String tableName)
   在 FC.Server.DbAccess.Oracle.COracleTransaction.DoQuery(String strCmdText, CDbParmCollection parameters, CommandType cmdtype, DataTableMappingCollection mappings, DataSet ds)
   在 FC.Server.DbAccess.CDbTransaction.QuerySP(CStoredProcedureParms par, DataSet result)

转载于:https://www.cnblogs.com/liruiba/archive/2011/03/04/1970627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值