C# ORA-06502:PL/SQL:数字或值错误:从数据库获取数据时发生字符到数字的转换错误

C# ORA-06502:PL/SQL:数字或值错误:从数据库获取数据时发生字符到数字的转换错误,c#,asp.net,oracle,stored-procedures,C#,Asp.net,Oracle,Stored Procedures,我想执行一个表并从数据库中获取它的数据。因此,我调用一个存储过程,如下所示:- PROCEDURE GETSAPIDINFO ( P_SAPID IN NUMBER, OUTPUTTABLE OUT SYS_REFCURSOR ) AS BEGIN OPEN OUTPUTTABLE FOR SELECT SAP_ID, STATE,LATITUDE, LONGITUDE FROM R4G_OSP.ENODEB WHERE SAP_ID = P_SAPID; END GETS

我想执行一个表并从数据库中获取它的数据。因此,我调用一个存储过程,如下所示:-

PROCEDURE GETSAPIDINFO
(
 P_SAPID IN NUMBER,
 OUTPUTTABLE OUT SYS_REFCURSOR 
)
AS 
BEGIN

OPEN OUTPUTTABLE FOR 

SELECT SAP_ID, STATE,LATITUDE, LONGITUDE FROM R4G_OSP.ENODEB
WHERE SAP_ID = P_SAPID;  


END GETSAPIDINFO;
并将其数据填入数据表中

但我也有错误

ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误

在这条线上

da.Filldt


我不知道为什么会出现此错误。

请修改以下更改:

其中SAP_ID=将p_SAPID转换为NVARCHAR230

将变量声明为:
P_SAPID在nvarhar230中,

您能检查SAP_ID数据类型吗?请按以下方法修改:其中SAP_ID=将P_SAPID转换为nvarhar230;或者在NVARCHAR230中将变量声明为:P_SAPID,@SinghKailash:yes done,谢谢kailash。。现在它开始工作了,为什么当SAP_ID数据类型为nvarhar230时,您要在数字中声明P_SAPID?您应该在NVARCHAR2中声明P_SAPID,或者在R4G_OSP.ENODEB.SAP_ID%类型中声明更好的P_SAPID谢谢Kailash singh:
public DataTable ExecuteDataTable()
    {
        DataTable dt = null;
        try
        {
            if (this.OpenConnection())
            {
                this._oracleCommand.Connection = this._oracleConnection;
                this._oracleCommand.Parameters.Add(new OracleParameter("OUTPUTTABLE", OracleDbType.RefCursor, ParameterDirection.Output));
                dt = new DataTable();
                OracleDataAdapter da = new OracleDataAdapter(this._oracleCommand);
                da.Fill(dt);
                da.Dispose();

                this._htblOutParamenter = new Hashtable();
                foreach (OracleParameter op in this._oracleCommand.Parameters)
                {
                    if (op.Direction == ParameterDirection.InputOutput)
                        this._htblOutParamenter.Add(op.ParameterName, (object)op.Value.ToString());
                }

                this.CloseConnection();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            this.CloseConnection();
        }
        return dt;
    }