편집 기록

편집 기록
  • 프로필 허대영(소프트웨어융합대학)님의 편집
    날짜2016.08.26

    C#에서 오라클 SYS_REFCURSOR 사용 방법


    C#에서 SYS_REFCURSOR을 사용한 프로시저를 사용하려고 하는데 아래와 같은 에러가 나네요. 확인 부탁 드리겠습니다.

    --소스

    using System;
    using System.Data;
    using System.Windows.Forms;
    using Oracle.DataAccess.Client;
    //using System.Data.OracleClient;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string connStr = "Data Source=KRTSR ;User ID=sfaadmin;Password=Password1;";
                DataSet dataset = new DataSet();
    
                using (OracleConnection objConn = new OracleConnection(connStr))
                {
                    OracleCommand objCmd = new OracleCommand();
                    objCmd.Connection = objConn;
                    objCmd.CommandText = "SP_OUT_CURSOR_EXAMPLE";
                    objCmd.CommandType = CommandType.StoredProcedure;
                    objCmd.Parameters.Add("V_PARAM", OracleDbType.Char).Value = "param2"; // Input id
                    objCmd.Parameters.Add("V_OUT", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
    
                    try
                    {
                        objConn.Open();
                        objCmd.ExecuteNonQuery();
                        OracleDataAdapter da = new OracleDataAdapter(objCmd);
                        da.Fill(dataset);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    objConn.Close();
                }
    
            }
    
            }
        }
    

    --에러 메시지

    이미지

  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.08.25

    C#에서 오라클 SYS_REFCURSOR 사용 방법


    C#에서 SYS_REFCURSOR을 사용한 프로시저를 사용하려고 하는데 아래와 같은 에러가 나네요. 확인 부탁 드리겠습니다.

    --소스

    using System; using System.Data; using System.Windows.Forms; using Oracle.DataAccess.Client; //using System.Data.OracleClient;

    namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

        private void button1_Click(object sender, EventArgs e)
        {
            string connStr = "Data Source=KRTSR ;User ID=sfaadmin;Password=Password1;";
            DataSet dataset = new DataSet();
    
            using (OracleConnection objConn = new OracleConnection(connStr))
            {
                OracleCommand objCmd = new OracleCommand();
                objCmd.Connection = objConn;
                objCmd.CommandText = "SP_OUT_CURSOR_EXAMPLE";
                objCmd.CommandType = CommandType.StoredProcedure;
                objCmd.Parameters.Add("V_PARAM", OracleDbType.Char).Value = "param2"; // Input id
                objCmd.Parameters.Add("V_OUT", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
    
                try
                {
                    objConn.Open();
                    objCmd.ExecuteNonQuery();
                    OracleDataAdapter da = new OracleDataAdapter(objCmd);
                    da.Fill(dataset);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                objConn.Close();
            }
    
        }
    
        }
    }
    

    --에러 메시지

    이미지