Public Class WebForm1 Inherits System.Web.UI.Page Private sCon As String = ConfigurationSettings.AppSettings("odh1") #Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here Dim objConnection As New OracleConnection(sCon) Dim objCommand As New OracleCommand() Dim objAdapter As OracleDataAdapter Dim objParameter As OracleParameter Dim objDataSet As DataSet Dim x As Integer Try objConnection.Open() With objCommand .Connection = objConnection .CommandText = "pkg_users_master.GetLookUpValues" .CommandType = CommandType.StoredProcedure .Parameters.Add(New OracleParameter("PriCur", OracleType.Cursor)).Direction = ParameterDirection.Output End With objDataSet = New DataSet() objAdapter = New OracleDataAdapter(objCommand) objAdapter.Fill(objDataSet) x = 1 Catch eex As Exception Response.Write(eex.ToString()) End Try End Sub End Classwith the stored procedure of:
CREATE OR REPLACE PACKAGE pkg_users_master AS TYPE IssCur Is REF CURSOR ; PROCEDURE GetLookUpValues ( p_error_id OUT Integer, p_error_msg OUT VarChar2, PriCur OUT IssCur) IS LocalPriCur IssCur ; BEGIN OPEN LocalPriCur FOR SELECT * FROM Users_Master ; LocalPriCur := PriCur ; p_error_id := 0 ; p_error_msg := 'Nothing' ; EXCEPTION WHEN Others THEN p_error_id := SQLCODE ; p_error_msg := SUBSTR(SQLERRM,1,100); END; END ;and get the following error:
System.Data.OracleClient.OracleException: ORA-24338: statement handle not executed at System.Data.OracleClient.OracleException.Check(OciHandle errorHandle, Int32 rc) at System.Data.OracleClient.OciHandle.GetAttribute(ATTR attribute, Int32& value, OciHandle errorHandle) at System.Data.OracleClient.OracleDataReader.FillColumnInfo() at System.Data.OracleClient.OracleDataReader..ctor(OracleConnection connection, OciHandle statementHandle) at System.Data.OracleClient.OracleParameterBinding.GetOutputValue(NativeBuffer parameterBuffer, OracleConnection connection, Boolean needCLSType) at System.Data.OracleClient.OracleParameterBinding.PostExecute(NativeBuffer parameterBuffer, OracleConnection connection) at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals) at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, ArrayList& refCursorParameterOrdinals) at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OracleClient.OracleCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at Login.WebForm1.Page_Load(Object sender, EventArgs e) in \\fchsdndev1\root\Login\WebForm1.aspx.vb:line 51Notice that I use an OracleDataAdapter, but the trace shows System.Data.Common.DbDataAdapter. Why isn't this an OracleDataAdapter?