Odbc Oracle StoredProcedure - Fehler Ora00900

rabado

Mitglied
Code:
            bool bOpen = false;
            try {
                if (conOracle.State==ConnectionState.Closed) {bOpen=true; conOracle.Open();}
                string sCmd             = "pze_out(" + DateTime.Now.DayOfYear.ToString() + ")";
                OdbcCommand oCmd        = new OdbcCommand();
                oCmd.Connection         = base.conOracle;
                oCmd.CommandText        = sCmd;
                oCmd.CommandType        = CommandType.StoredProcedure;
                int iRet                = oCmd.ExecuteNonQuery();
                if (bOpen) conOracle.Close();
                
            }catch (OdbcException ex){
                ListViewItem liError = new ListViewItem(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                liError.SubItems.Add("FEHLER_PERS");
                liError.SubItems.Add(ex.Message);
                m_lvStatus.Items.Add(liError);
            }finally{
                if (bOpen) conOracle.Close();
            }
Moin Zusammen,

oben dargestellter Code-Ausschmitt verursacht leider eine Exception bei mir (Ora 00900 - invalid Sql-Statement).
Die auszuführende Stored Procedure an sich funktioniert, wenn ich sie im SQL Worksheet starte
Code:
exec pze_out(313);
Die Procdure gibt keine Werte zurück.
System.Data.OracleClient kann ich nicht verwenden.

Hat einer eine Lösung für mein Problem?
Thx, Ralf
 
Lösung:
Code:
                if (conOracle.State==ConnectionState.Closed) {bOpen=true; conOracle.Open();}
                //exec myproc(1234);
                string sCmd             = "{call myproc(?)}";
                OdbcCommand oCmd        = new OdbcCommand();
                oCmd.Connection         = base.conOracle;
                oCmd.CommandText        = sCmd;
                OdbcParameter p1;
                //p1=oCmd.Parameters.Add("@retVal",OdbcType.Numeric);
                //p1.Direction=ParameterDirection.ReturnValue;
                p1=oCmd.Parameters.Add("@p1",OdbcType.Numeric);
                p1.Value= int.Parse("7" + DateTime.Now.DayOfYear.ToString());
                oCmd.CommandType        = CommandType.StoredProcedure;
                int iRet                = oCmd.ExecuteNonQuery();
                if (bOpen) conOracle.Close();
 
Zurück