是否有Oracle SQLPLUS的.Net接口?

Ric*_*ich 6 .net oracle automation sqlplus

我正在开发一些自动化来控制SQL脚本的执行.脚本通过SQL*PLUS运行并包含PL/SQL调用(因此我无法通过ODP.NET运行它们).

我想知道是否有SQL*PLUS.NET接口?如果是这样,有人用它吗?

Pab*_*ruz 4

您可以使用以下代码在 C# 中完成此操作:

public int execString(string scriptFileName)
{
   int exitCode;
   ProcessStartInfo processInfo;
   Process process;
   int timeout = 5000;

   processInfo = new ProcessStartInfo("sqlplus.exe", "@" + scriptFileName);
   processInfo.CreateNoWindow = true;
   processInfo.UseShellExecute = false;
   process = process.Start(ProcessInfo);
   process.WaitForExit(timeout);
   exitCode = process.ExitCode;
   process.Close();

   return exitCode;
}
Run Code Online (Sandbox Code Playgroud)

在 VB.NET 中,您可以使用框架中相同的 API 完成完全相同的事情,但我对 VB.NET 语法了解不多。

您还可以尝试检查 SQL/Plus DLL,看看是否可以从中得到一些东西。但我认为,尽管它应该是一种更快(性能方面)的方法,但它会比使用我建议的方法复杂得多。