ODP.Netで複数の問合せを実行できるようにするには、select文で終了します。私はクリアし、更新してからテーブルから選択します。一例として、ODP.NetでOracleで複数の問合せを実行する
:
BEGIN
DELETE FROM StagingTable;
INSERT INTO StagingTable (Col1,Col2,Col3)
SELECT Value1,Value2,Value3
FROM MainTable;
UPDATE StagingTable
SET Col1 = FUNCTION(Col1);
END;
/
SELECT * FROM StagingTable;
これは、SQL Developerで動作しますが、ODP.NETではありません。私はこのエラーを取得:
ORA-06550: line 26, column 1: PLS-00103: Encountered the symbol "/"
をしかし、私は削除する場合は/私が取得:
ORA-06550: line 27, column 1: PLS-00103: Encountered the symbol "SELECT"
は、私も可能何をしたいですか?私はパッケージを作成して型の作成などをしなければならないとは思わない。理想的には私は.Net経由でこれをやりたい
そんなことはできません。ストアドプロシージャにすべてを格納し、カーソルとしてセレクトを返すか、2回の実行に分割します。 – OldProgrammer
OldProgrammerが示唆しているように、SQL * Plus構文(バックスラッシュ)を使用していますが、これはSQL Developerなどのツールでは有効ですが、プログラマチック・インタフェースでは使用できません。バインド変数を使用してODP.NETから匿名PLSQLを呼び出すことができます。全体を1つの無名PL/SQLブロックに入れ、最後にREF CURSORにバインドすることができます。その後、それから取り出します。 –
odp.netから匿名のplsqlブロックを呼び出し、次に参照カーソルにバインドするコードの例をいくつか示します。http://www.oracle.com/partners/campaign/o16odpnet-087852.html –