2009-07-27 29 views
1

ODP.NETを使用して任意のSQLスクリプトを実行する方法はありますか?私はこのような何かをしたいと思います:ODP.NETを使用して任意のOracle SQLスクリプトを実行できますか?

SomeOracleObject.RunFile("myfile.sql"); 

言い換えれば、私ははsqlplus.exeの必要性を回避したいと思います。

+0

通常、OracleのSQLスクリプトにはSQLとPL/SQLコマンドとSQL * Plusコマンドが含まれていますが、SQL * Plusコマンド(SPOOL、BREAK、COLUMNなど)を含むスクリプトをサポートする必要がありますか? –

+0

SQLとPL/SQLコマンドだけです。これらのスクリプトは、この.NETコードを実行するために明示的に記述されています。 –

+0

だから、それは本当に恣意的ではないと思います。 ..;) –

答えて

0

ここでは、あなたが求めていることを正確に行うために使用するコードスニペットを示します。

using (OracleConnection conn = CreateConnection(confConnString)) 
    { 
     try 
     { 
      using (OracleCommand cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = scriptFileContents; 

       cmd.ExecuteNonQuery(); 
+0

これは動作しません - 私がそれをやろうとすると、ORA-00911エラーが表示されます。 SQL文末に – thecoop

+0

各スクリプトファイルの内容をBEGIN/ENDにラップしてみてください。 –

1

私はこの問題に対する同様の解決策を探していました。 I posted on the Oracle forumsはODP.NET用ですが、オラクル社の誰も実際にフォーラムに参加していないようです。私がこれまで見てきた最も近いことは、DevArtのdotConnect for OracleのOracleScript classです。理想的には、SQL Server管理オブジェクト内にあるのと同じ機能が必要ですが、Oracle用です。私の選択肢があれば、このようなことが原因でSQL Serverに戻ることになりますが、それは自分の選択ではありません。 :(

関連する問題