ORA-06502: PL/SQL: numeric or value error: character string buffer too small exception from C# code

Sandeep Reddy K.

I am trying to execute some oracle pl/sql procedure with in and out parameters from # code on asp.net. I want to retrive the value from out parameter. but when I execute i am getting a oracle exception like "ORA-06502: PL/SQL: numeric or value error: character string buffer too small".What can I do now? Please help me.

code:

using Oracle.DataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Activity.Account
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SuccessLabel.Visible = false;
            FailureLabel.Visible = false;
        }

        protected void Create_user(object sender, EventArgs e)
        {
            var id="";
            string oradb = "Data Source=OracleServerHost;User ID=scott;password=tiger";
            using (OracleConnection conn = new OracleConnection(oradb))
            {
                try
                {
                    OracleCommand cmd = new OracleCommand();
                    cmd.Connection = conn;
                    cmd.CommandText = "create_users_372640";
                    cmd.CommandType = CommandType.StoredProcedure;
                    OracleParameter p1 = new OracleParameter("u_user_id", UserIDTextBox.Text.TrimEnd());
                    OracleParameter p2 = new OracleParameter("u_First", FirstNameTextBox.Text.TrimEnd());
                    OracleParameter p3 = new OracleParameter("u_Last", LastNameTextBox.Text.TrimEnd());
                    OracleParameter p4 = new OracleParameter("u_Email", EmailIDTextBox.Text.TrimEnd());
                    OracleParameter p5 = new OracleParameter("u_password", PasswordTextBox.Text.TrimEnd());
                    cmd.Parameters.Add(p1);
                    cmd.Parameters.Add(p2);
                    cmd.Parameters.Add(p3);
                    cmd.Parameters.Add(p4);
                    cmd.Parameters.Add(p5);
                    OracleCommand cmd_chk = new OracleCommand();
                    cmd_chk.Connection = conn;
                    cmd_chk.CommandText = "check_user_372640";
                    cmd_chk.CommandType = CommandType.StoredProcedure;
                    OracleParameter p6 = new OracleParameter("user_id", UserIDTextBox.Text.TrimEnd());
                    cmd_chk.Parameters.Add(p6);
                    cmd_chk.Parameters.Add("id", OracleDbType.Varchar2).Direction = ParameterDirection.Output;
                    conn.Open();
                    cmd_chk.ExecuteNonQuery();
                    id=(string)cmd_chk.Parameters["id"].Value;
                    //OracleDataReader rd = cmd_chk.ExecuteReader();
                    if (id != null && id != "")
                    {
                        //rd.Read();
                        SuccessLabel.Visible = false;
                        FailureLabel.Visible = true;
                    }
                    else
                    {
                        cmd.ExecuteNonQuery();
                        SuccessLabel.Visible = true;
                        FailureLabel.Visible = false;    
                    }
                }catch(Exception){
                    Console.WriteLine("SQL Exception Occured");
                }
            }

        }
    }
}

My oracle procedure is:

create or replace procedure check_user_372640(
user_id in varchar2,
id out varchar2
)
as
u_id varchar2(20);
begin
select user_id into u_id from ACTIVITY_USERS_372640 where user_id=user_id;
id:=u_id;
end;
Sandeep Reddy K.

It is working for me now. Mistake is I have declared a parameter "Id" as varchar2. but I didn't give any size to that. Now I have declared max size to the parameter and its working fine.

 cmd_chk.Parameters.Add("id", OracleDbType.Varchar2,32767).Direction = ParameterDirection.Output;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle - ORA-06502: PL/SQL: numeric or value error (DBMS_OUTPUT)

来自分类Dev

ORA-06502:PL / SQL:数字或值错误:调用PLSQL时,字符串缓冲区太小

来自分类Dev

ora-06502关于写入LONG变量

来自分类Dev

'[错误]执行(8:3):ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小ORA-06512:在下面的plsql中的第5行'

来自分类Dev

ORA-06502,ORA-06512 Oracle存储过程错误

来自分类Dev

ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小,来自C#代码的异常

来自分类Dev

CallNtPowerInformation 函数失败,返回值为 STATUS_BUFFER_TOO_SMALL

来自分类Dev

Getting Error retrieving field value from bean Exception with JasperReports API

来自分类Dev

为什么出现此ORA-06502错误消息?

来自分类Dev

错误-ORA-06502:PL / SQL:数字或值错误

来自分类Dev

How to input unicode character and get its numeric value

来自分类Dev

ORA-01756:quoted string not properly terminated Exception

来自分类Dev

Unexpected character ('a' (code 97)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')

来自分类Dev

Fast and safe conversion from string to numeric types

来自分类Dev

Is it possible to get String value back from its hash code?

来自分类Dev

A WHERE statement in my SqlDataSource causes invalid character exception (ORA-00911), why?

来自分类Dev

Throw string exception from inherited exception class

来自分类Dev

plsql代码中的错误-ORA 06550

来自分类Dev

Escaping a Javascript string, Unterminated character class error

来自分类Dev

Oracle-ORA-06502:PL / SQL:数字或值错误(DBMS_OUTPUT)

来自分类Dev

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

来自分类Dev

ORA-06502:PL / SQL:空游标的情况下数值或值错误

来自分类Dev

我收到此错误ORA-06502,其中我已正确定义每件事

来自分类Dev

ORA-06502:PL/SQL:尝试将 XML 保存到文件时出现数字或值错误

来自分类Dev

Xamarin ndk get string from c function as return value

来自分类Dev

How to stop the normal force from being too small on a 2D rigidbody? (Java 2D)

来自分类Dev

Trimming new line character from a string in java

来自分类Dev

Python 2.7: Select specific character from string

来自分类Dev

Error (ORA-00923: FROM keyword not found where expected)

Related 相关文章

  1. 1

    Oracle - ORA-06502: PL/SQL: numeric or value error (DBMS_OUTPUT)

  2. 2

    ORA-06502:PL / SQL:数字或值错误:调用PLSQL时,字符串缓冲区太小

  3. 3

    ora-06502关于写入LONG变量

  4. 4

    '[错误]执行(8:3):ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小ORA-06512:在下面的plsql中的第5行'

  5. 5

    ORA-06502,ORA-06512 Oracle存储过程错误

  6. 6

    ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小,来自C#代码的异常

  7. 7

    CallNtPowerInformation 函数失败,返回值为 STATUS_BUFFER_TOO_SMALL

  8. 8

    Getting Error retrieving field value from bean Exception with JasperReports API

  9. 9

    为什么出现此ORA-06502错误消息?

  10. 10

    错误-ORA-06502:PL / SQL:数字或值错误

  11. 11

    How to input unicode character and get its numeric value

  12. 12

    ORA-01756:quoted string not properly terminated Exception

  13. 13

    Unexpected character ('a' (code 97)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')

  14. 14

    Fast and safe conversion from string to numeric types

  15. 15

    Is it possible to get String value back from its hash code?

  16. 16

    A WHERE statement in my SqlDataSource causes invalid character exception (ORA-00911), why?

  17. 17

    Throw string exception from inherited exception class

  18. 18

    plsql代码中的错误-ORA 06550

  19. 19

    Escaping a Javascript string, Unterminated character class error

  20. 20

    Oracle-ORA-06502:PL / SQL:数字或值错误(DBMS_OUTPUT)

  21. 21

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

  22. 22

    ORA-06502:PL / SQL:空游标的情况下数值或值错误

  23. 23

    我收到此错误ORA-06502,其中我已正确定义每件事

  24. 24

    ORA-06502:PL/SQL:尝试将 XML 保存到文件时出现数字或值错误

  25. 25

    Xamarin ndk get string from c function as return value

  26. 26

    How to stop the normal force from being too small on a 2D rigidbody? (Java 2D)

  27. 27

    Trimming new line character from a string in java

  28. 28

    Python 2.7: Select specific character from string

  29. 29

    Error (ORA-00923: FROM keyword not found where expected)

热门标签

归档