Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-06550 Calling procedure using ODP.Net

John CrosonJan 9 2015 — edited Jan 13 2015

I've been getting this error calling from my Asp.Net C# app. While executing it in PL/Sql everything "just works"...

I have stepped through the code and verified the data is being passed in, and also see that even though I receive this error, the database is updated!

This is the C# code:

        protected void gvHeader_RowUpdating(object sender, GridViewUpdateEventArgs e)

        {

            string sp = "VNETAPP.ECOS_APPLICATION_API.STAGE_ACTIVE_UPDATE_OBJ";

            string sCon = ConfigurationManager.ConnectionStrings["DSN_Ecos"].ConnectionString;

            try

            {

                using (OracleConnection conn = new OracleConnection(sCon))

                {

                    using (OracleCommand cmd = new OracleCommand(sp, conn))

                    {

                        cmd.CommandType = CommandType.StoredProcedure;

                        cmd.BindByName = true;

                        cmd.Parameters.Add(new OracleParameter("p_object_id_", OracleDbType.Decimal, System.Data.ParameterDirection.Input)).Value = e.Keys["OBJECT_ID"];

                        cmd.Parameters.Add(new OracleParameter("p_study_id_", OracleDbType.Varchar2, System.Data.ParameterDirection.Input)).Value = e.NewValues["STUDY_ID"];

                        cmd.Parameters.Add(new OracleParameter("p_study_name_", OracleDbType.Varchar2, System.Data.ParameterDirection.Input)).Value = e.NewValues["STUDY_NAME"];

                        cmd.Parameters.Add(new OracleParameter("p_pricebook_", OracleDbType.Varchar2, System.Data.ParameterDirection.Input)).Value = e.NewValues["ORDER_PRICEBOOK"];

                        cmd.Parameters.Add(new OracleParameter("p_reviewcode_", OracleDbType.Decimal, System.Data.ParameterDirection.Input)).Value = e.NewValues["REVIEW_CODE"];

                        cmd.Parameters.Add(new OracleParameter("p_user_name_", OracleDbType.Varchar2, System.Data.ParameterDirection.Input)).Value = "john.croson";

                     

                        conn.Open();

                        int res = cmd.ExecuteNonQuery();

                    }

                }

                gvHeader.DataBind();

            }

            catch (Exception ex)

            {

                ShowResponsePopup("Error", "gvHeader_RowUpdating threw error : " + ex.ToString(), this);

            }        

        }

PROCEDURE STAGE_ACTIVE_UPDATE_OBJ

(

   p_object_id_   IN NUMBER,

   p_study_id_    IN VARCHAR2,

   p_study_name_  IN VARCHAR2,

   p_pricebook_   IN VARCHAR2,

   p_reviewcode_  IN NUMBER,

   p_user_name_   IN VARCHAR2

)

IS

BEGIN

   UPDATE ECOS_STAGE_ACTIVE_TAB

       SET STUDY_ID = p_study_id_,

           STUDY_NAME = p_study_name_,

           ORDER_PRICEBOOK = p_pricebook_,

           REVIEW_CODE = p_reviewcode_,

           LAST_MODIFIED_DATE = SYSDATE,

           LAST_MODIFIED_USER = p_user_name_

     WHERE OBJECT_ID = p_object_id_;

  

   -- do log stuff

   /* REFRESH THE OBJECT TO TRIGGER ALL VALIDATION */

   STAGE_ACTIVE_REFRESH_OBJ(p_object_id_);

END STAGE_ACTIVE_UPDATE_OBJ;

I'm at a loss as to why this fails, and really don't want to resort to OleDb...

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 10 2015
Added on Jan 9 2015
7 comments
2,454 views