Существует простой файл .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
.Этот ответ поможет мне успешно напечатать вывод.Спасибо.