次のようなストアドプロシージャがあります。
TYPE ref_cursor IS REF CURSOR;
TYPE parametro IS RECORD (
nombre VARCHAR2(50), -- I want to remove this value and make it the key of the table instead.
valor VARCHAR2(32000),
tipo VARCHAR2(1),
sentencia VARCHAR2(32000)
);
TYPE parametros IS TABLE OF parametro INDEX BY VARCHAR2(50);
PROCEDURE build_cursor (
params IN parametros
results OUT ref_cursor
);
そして、build_cursorプロシージャから、そのキーでテーブルの内容にアクセスできるようにしたいと思います。
parametros('key');
ただし、Javaから連想配列を作成する方法がわかりません。単純な配列の例しか見ていません。つまり、次のようになります。TYPE parametros IS TABLE OF parametro;
build_cursor
Javaからプロシージャを呼び出すにはどうすればよいですか?
私はこれを読みました:Javaでユーザー定義型を含むOracleストアドプロシージャを呼び出す方法は?しかし、連想配列を作成するために彼のJavaの例にどのような変更を加える必要があるのかわかりません。現在の要素のキーはどこに置きますか?
これは、Oracleによる実用的なテストです。
params('key').nombre := 'key'; -- I want this to be removed because it's the key.
params('key').valor := 'Roger';
params('key').tipo := 'V';
params('key').sentencia := 'Something';
-- Call the procedure
pk_sql_utils.build_cursor(
params => params,
results => :results
);