0

この質問は、 ado パラメータ オブジェクトによって javascript 配列を Oracle ストア プロシージャに渡す方法に関する私の質問の一部です。

3つに分けた方が早く答えが出ると思います。

この質問のために。

テーブル型を宣言して使用できることはわかっています

select last_name 
from employees in (select * from table(cast(my_table_type_var as my_table_type));

しかし、これを含む手順を含む新しいパッケージの作成から常にエラーが発生します。そして、sql と pl/slq が同じエンジンを使用していないため、sql(in schema) 型を宣言する必要があるというスレッドを読みました。spl*plus でスキーマに型を作成しようとしましたが、それでも同じエラーが発生するため、最初にこれを実行するパッケージの例が必要です。

4

1 に答える 1

1

TABLEから演算子を呼び出すには、SQL オブジェクトが必要ですSELECT。ここに小さな例があります (9iR2):

SQL> CREATE TYPE table_number is TABLE OF NUMBER;
  2  /

Type created.

SQL> SELECT * FROM TABLE(table_number(1,2,3));

COLUMN_VALUE
------------
           1
           2
           3

代わりにここで関数を使用できます (私の TYPE はまだパッケージの外で定義されていることに注意してください):

SQL> CREATE OR REPLACE PACKAGE pkg AS
  2     FUNCTION f RETURN table_number;
  3  END;
  4  /

Package created.

SQL> CREATE OR REPLACE PACKAGE BODY pkg AS
  2     FUNCTION f RETURN table_number IS
  3     BEGIN
  4        RETURN table_number(4,5,6);
  5     END;
  6  END;
  7  /

Package body created.

SQL> SELECT * FROM table(pkg.f);

COLUMN_VALUE
------------
           4
           5
           6
于 2012-07-11T14:53:41.423 に答える