I am trying to use an Oracle Data Reader with a ref cursor within a package I have created.
Using Visual Studio and C#.
Although I am getting two build errors concerning my reader:
Below is my code:
protected void Page_Load(object sender, EventArgs e)
{
string oradb = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*****)(PORT=***))(CONNECT_DATA=(SERVICE_NAME=***)));User Id=APPS;Password=****;";
OracleConnection conn = new OracleConnection(oradb); // C#
conn.Open();
OracleCommand myCMD = new OracleCommand();
myCMD.Connection = conn;
myCMD.CommandText = "apps.cie_install_base_data.get_serial_trx_hist";
myCMD.CommandType = CommandType.StoredProcedure;
myCMD.Parameters.Add(new OracleParameter("p_cursor", OracleDbType.RefCursor)).Direction = ParameterDirection.Output;
myCMD.Parameters.Add("p_serial_number", OracleDbType.Varchar2, 30).Value = "M5605946";
OracleDataReader myReader = default(OracleDataReader);
try
{
myCMD.ExecuteNonQuery();
}
catch (Exception myex)
{
Label1.Text = " " + myex.Message;
}
myReader = myCMD.Parameters("p_cursor");
int x = 0;
int count = 0;
count = 0;
//myReader = myCMD.ExecuteReader();
while (myReader.Read()) {
for (x = 0; x <= myReader.FieldCount - 1; x++) {
Label3.Text = myReader(x) + " ";
}
Label4.Text = " ";
count += 1;
}
Label5.Text = (count + " Rows Returned.");
myReader.Close();
conn.Close();
}
}
}
If anyone can see why I am getting these build errors, or knows how I can get the data to be displayed properly that would be great.
myReader = ((OracleRefCursor)myCMD.Parameters["p_cursor"].Value)).GetDataReader();
from https://docs.oracle.com/cd/B19306_01/win.102/b14307/OracleRefCursorClass.htm
Unlike VB, C# uses brackets to index collections.
Use []
, not ()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With