The event handler receives an argument of type OracleInfoMessageEventArgs containing data related to this event. The following OracleInfoMessageEventArgs properties provide information specific to this event.
Property | Description |
---|
Code | Gets the Oracle specific message code. |
Errors | Returns collection of errors generated by OracleCommand. |
Message | Gets the full text of the message sent from the Oracle database. |
Source | Gets the name of the application or the object that threw the event. |
The following example demostrates registering InfoMessage event handler that prints out the warning info.
class OracleInfoMessage {
public static void WarningPrinter(object src,
OracleInfoMessageEventArgs args)
{
Console.WriteLine("Source object is: " + src.GetType().Name);
Console.WriteLine("InfoMessageArgs.Message is " + args.Message);
Console.WriteLine("InfoMessageArgs.Source is " + args.Source);
}
static void Main()
{
OracleConnection con = new OracleConnection("User Id=scott;" +
"Password=tiger;Data Source=ora1110;");
con.Open();
OracleCommand cmd = con.CreateCommand();
// Register to the InfoMessageHandler
cmd.Connection.InfoMessage +=
new OracleInfoMessageEventHandler(WarningPrinter);
cmd.CommandText = "CREATE OR REPLACE PACKAGE BODY PACKAGEWITHNOSPECIFICATION AS" +
"PROCEDURE GET_ALL_DEPTS (cur OUT SYS_REFCURSOR) AS" +
"BEGIN" +
" OPEN cur FOR SELECT * FROM DEPT;" +
"END;" +
"END PACKAGEWITHNOSPECIFICATION;";
// Execute the statement that produces a warning
cmd.ExecuteNonQuery();
// Clean up
cmd.Dispose();
con.Dispose();
}
}
Module Module1
Public Sub WarningPrinter(ByVal src As Object, ByVal args As OracleInfoMessageEventArgs)
Console.WriteLine("Source object is: " + src.GetType().Name)
Console.WriteLine("InfoMessageArgs.Message is " + args.Message)
Console.WriteLine("InfoMessageArgs.Source is " + args.Source)
End Sub 'WarningPrinter
Sub Main()
Dim con As New OracleConnection("User Id=scott;Password=tiger;Data Source=ora1110;")
con.Open()
Dim cmd As OracleCommand = con.CreateCommand()
' Register to the InfoMessageHandler
AddHandler cmd.Connection.InfoMessage, _
New OracleInfoMessageEventHandler(AddressOf WarningPrinter)
'command.Connection.InfoMessage += New OracleInfoMessageEventHandler(WarningPrinter)
cmd.CommandText = "CREATE OR REPLACE PACKAGE BODY PACKAGEWITHNOSPECIFICATION AS" & _
"PROCEDURE GET_ALL_DEPTS (cur OUT SYS_REFCURSOR) AS" & _
"BEGIN" & _
" OPEN cur FOR SELECT * FROM DEPT;" & _
"END;" & _
"END PACKAGEWITHNOSPECIFICATION;"
' Execute the statement that produces a warning
cmd.ExecuteNonQuery()
' Clean up
cmd.Dispose()
con.Dispose()
End Sub
End Module