0

plsqlで単純な配列のようなことを行う方法は?例で説明したほうがいいです。

私が持っているものを見てみましょう

PROCEDURE MyProcedure(name varchar2 := '', father varchar2 := '', description varchar2 := '') IS 
        BEGIN
            UPDATE BC_ACTIONTYPEGROUP SET
                ColumnName = name,
                ColumnFather = father,
                ColumnDecription = description
            WHERE
                ColumnName = name;
            IF SQL%ROWCOUNT = 0 THEN
                INSERT INTO TableNames  (ColumnName, ColumnFather, ColumnDescription)
                VALUES (name, description, father);
            END IF;
        END;
/
MyProcedure('John',     '', 'Little John has three brothers');
MyProcedure('George',   'YES',  'George is father of John');

そして私はこのようなものが必要です

MyProcedure(name=>'John', description=>'Little John has three brothers');
MyProcedure(name=>'George', father=>'YES',  description=>'George is father of John');

出来ますか?または、手順でこのようなものを使用する最も簡単な方法は何ですか。

私はITの新入生なので、アドバイスをありがとうございます。

4

1 に答える 1

1

配列とハッシュテーブル(連想配列)のどちらを探しているのかわかりません。

配列は簡単です:

declare
TYPE names IS VARRAY(6) OF VARCHAR2(20) ;
name names;
name names.extend(1);
begin
name(1) := 'John Doe';
end;

参照:
http ://docs.oracle.com/cd/B10500_01/appdev.920/a96624/05_colls.htm

連想配列の場合、次のような型を定義する必要があります。

TYPE my_type IS TABLE OF VARCHAR2(256) INDEX BY VARCHAR2(5);
-- Declare actual associative array using new data type.
my_array my_type;
my_key VARCHAR2(5);

これを見てください:

http://javaconfessions.com/2008/08/associative-arrays-hashtables-for-plsql.html

http://tylermuth.wordpress.com/2008/02/21/plsql-associative-arrays/

次に、次の手順に従って、配列を関数またはプロシージャに渡します。

PL/SQL関数で配列を渡す使用方法

于 2012-08-08T12:41:08.713 に答える