Announcement

Collapse
No announcement yet.

Oracle DBMS_ALERT aus C# aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Oracle DBMS_ALERT aus C# aufrufen

    Hallo,

    ich möchte mit der Oracle-DB das Package
    DBMS_ALERT verwenden.
    Dazu habe ich folgendes kleines Testprogramm in C# VS2005
    geschrieben:

    private void regEvent()
    {
    System.Data.OracleClient.OracleCommand oraCom = new OracleCommand();

    oraCom.Connection = oraCon; // mein DB-Connection
    oraCom.CommandType = CommandType.StoredProcedure;

    oraCom.CommandText = "dbms_alert.register(:dbevent)";

    OracleParameter dbevent = new OracleParameter();
    dbevent.ParameterName = "dbevent";
    dbevent.DbType = DbType.AnsiString;
    dbevent.OracleType = OracleType.VarChar;
    dbevent.Direction = ParameterDirection.Input;
    dbevent.Size = 2000;
    dbevent.Value = "BOBO"; // irgendein Text

    oraCom.Parameters.Clear();
    oraCom.Parameters.Add(dbevent);

    try
    {
    oraCom.ExecuteNonQuery();
    }
    catch (System.Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }

    Wenn ich das ausführe erhalte ich folgenden Fehler:
    ORA-06550: line 1, column 7:
    PLS-00801: internal error [22503]
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    Wenn ich statt des Parameters einen fixen Wert vorgebe
    this.oraCom.CommandText = "dbms_alert.register('BOBO')";
    läuft das problemlos.
    Was mache ich falsch ?

    Vielen Dank
    Joachim

  • #2
    Antworte ich mal selber:
    wenn man statt
    oraCom.CommandType = CommandType.StoredProcedure
    oraCom.CommandType = CommandType.Text und
    oraCom.CommandText = "begin dbms_alert.register(:dbevent); end;"
    verwendet gehts.

    Comment

    Working...
    X