ODP.NETを使用して任意のSQLスクリプトを実行する方法はありますか?私はこのような何かをしたいと思います:ODP.NETを使用して任意のOracle SQLスクリプトを実行できますか?
SomeOracleObject.RunFile("myfile.sql");
言い換えれば、私ははsqlplus.exeの必要性を回避したいと思います。
ODP.NETを使用して任意のSQLスクリプトを実行する方法はありますか?私はこのような何かをしたいと思います:ODP.NETを使用して任意のOracle SQLスクリプトを実行できますか?
SomeOracleObject.RunFile("myfile.sql");
言い換えれば、私ははsqlplus.exeの必要性を回避したいと思います。
ここでは、あなたが求めていることを正確に行うために使用するコードスニペットを示します。
using (OracleConnection conn = CreateConnection(confConnString))
{
try
{
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = scriptFileContents;
cmd.ExecuteNonQuery();
これは動作しません - 私がそれをやろうとすると、ORA-00911エラーが表示されます。 SQL文末に – thecoop
各スクリプトファイルの内容をBEGIN/ENDにラップしてみてください。 –
私はこの問題に対する同様の解決策を探していました。 I posted on the Oracle forumsはODP.NET用ですが、オラクル社の誰も実際にフォーラムに参加していないようです。私がこれまで見てきた最も近いことは、DevArtのdotConnect for OracleのOracleScript classです。理想的には、SQL Server管理オブジェクト内にあるのと同じ機能が必要ですが、Oracle用です。私の選択肢があれば、このようなことが原因でSQL Serverに戻ることになりますが、それは自分の選択ではありません。 :(
通常、OracleのSQLスクリプトにはSQLとPL/SQLコマンドとSQL * Plusコマンドが含まれていますが、SQL * Plusコマンド(SPOOL、BREAK、COLUMNなど)を含むスクリプトをサポートする必要がありますか? –
SQLとPL/SQLコマンドだけです。これらのスクリプトは、この.NETコードを実行するために明示的に記述されています。 –
だから、それは本当に恣意的ではないと思います。 ..;) –