Отображение вывода .sql из OracleConnection C # - PullRequest
1 голос
/ 11 марта 2019

Существует простой файл .sql, подобный следующему: -

helloworld.sql

DECLARE 
   message  varchar2(20):= 'Hello, World!'; 
BEGIN 
   dbms_output.put_line(message); 
END;

Я хочу вызвать файл в консольном приложении C #, отловить и отобразитьвывод в консоль.Предположительно, он должен просто вывести Hello, world! в консоли.Это то, что я пробовал до сих пор.

Program.cs

string sqlConnectionString = @"User Id=user;Password=password123;Data Source=xxxx.xxx.COM";
string script = File.ReadAllText(@"\\test\\helloworld.sql");
try
{
    using (OracleConnection con = new OracleConnection())
    {
        con.ConnectionString = sqlConnectionString;
        con.Open();
        var cmd = new OracleCommand(script, con);
        var result = cmd.ExecuteScalar();
        Console.Write(result.ToString());
    }
}
catch (SqlException e)
{
    Console.WriteLine("SQL Exception: " + e.Message);
}
catch (Exception e)
{
    Console.WriteLine("Exception: " + e.Message);
}

Но я получил Exception: Object reference not set to an instance of an object.Затем я узнаю о этом , поэтому я попытался использовать ExecuteNonQuery(), но из-за того, что на самом деле я ничего не извлекаю из базы данных, вывод равен -1.

Я просто хочу знать, какмогу ли я захватить вывод Hello, world! из файла .sql и распечатать его в консоли C #?

ОБНОВЛЕНИЕ:

После просмотра комментариев я получилИдея попробовать поискать около DBMS_OUTPUT.Этот ответ поможет мне успешно напечатать вывод.Спасибо.

...