1

関数内でいくつかのアクションを実行する必要があり、そのすべてが 1 つのクエリの結果に依存しているとします。私が見つけたものはすべて、プロシージャの外で一時テーブルを定義する必要があることを示していますが、これはしたくありません。

次のようなことをしたいと思います。

create or replace function f_example(
  a_input in number
)
return varchar2 is
begin
  create local temporary table tempIDs
  ( 
    testID number(6, 0)
    , testValue number(8,0)
  );

  //select data from tableFoo that will be overwritten by a_input into tempIDs

  //update data in tableFoo with a_input & store old data in another tableFoo field

end f_example;

この構文は機能しません。Oracle では、関数内での「作成」は許可されていません。

私は実際にはデータベース プログラマーではありません。C# と Java で作業することに慣れています。その場合、メソッドが終了したときにスコープ外になるローカル配列 (またはその他のもの) に値を格納します。Oracle SQLでこのようなことを行う方法は合法的にありませんか?

4

1 に答える 1