0

ここでは少し広い質問ですが、ここに行きます

Oracleストアドプロシージャを呼び出そうとしています。このストアドプロシージャは、テーブルの1つでROWTYPEから構築されたVARRAYを返します。簡単にするために、このテーブルが次のようになっているとしましょう。

MY_TABLE
ID   VALUE
-----------
1    John
2    Dave

したがって、次のVARRAYタイプを返すSPを呼び出します。

CREATE OR REPLACE TYPE param_array is VARRAY(100) OF MY_TABLE%ROWTYPE;

Oracleのドキュメントによると、これを配列として抽出できますが、私の質問は、配列のタイプはどうなるのか、文字列の配列、名前と値のペアの文字列などですか?

この配列からデータを取り出すJavaコードを作成していますが、、OR、またはなど、どの形式になるかわかり1ませJohn1=John1,John

何か案は?

4

1 に答える 1

1

ドキュメントから:

SQL>CREATE OR REPLACE TYPE EMPARRAY is VARRAY(20) OF VARCHAR2(30)
SQL>/

次に、VARRAY を返す次の関数を作成します。

CREATE OR REPLACE FUNCTION getEmpArray RETURN EMPARRAY
AS
  l_data EmpArray := EmpArray();
  CURSOR c_emp IS SELECT ename FROM EMP;
  BEGIN
    FOR emp_rec IN c_emp LOOP
      l_data.extend;
      l_data(l_data.count) := emp_rec.ename;
    END LOOP;
    RETURN l_data;
  END;

文字列 (VARCHAR) の配列を返します。最大長は 30 です。varchar (文字列) の varray として宣言されている emparray を返します。

于 2010-10-20T13:55:05.357 に答える