0

テーブル型をパラメータとしてプロシージャに渡したいと思います。

create or replace package FOO is
    type FOOTYPE is record (
        FOOTYPE_A varchar2(5) null,
        FOOTYPE_B varchar2(5) null,
        FOOTYPE_C varchar2(5) null
    ); 

    type FOOTYPETABLE is table of FOOTYPE;
...
    procedure sendNew (
        table_a in FOOTYPETABLE
    ) is
        a number;
    begin
       ...
    end sendNew;
...
end FOO;

declare
    type bartabletype is table of FOO.FOOTYPE index by binary_integer;
    bartable bartabletype;
    begin
        bartable(0).FOOTYPE_A := '';
        bartable(0).FOOTYPE_B := '';
        bartable(0).FOOTYPE_C := '';
        bartable(1).FOOTYPE_A := '';
        bartable(1).FOOTYPE_B := '';
        bartable(1).FOOTYPE_C := '';
    FOO.sendNew(bartable);
end;

しかし、オラクルは次のように述べています。

「ora-00306 引数の数またはタイプが間違っています」。

なんで?

4

3 に答える 3

0

おそらく、プロシージャ sendNew() パラメータ タイプとして宣言されている が、渡そうとしている とFOOTYPETABLE同じではないためです。table of FOO.FOOTYPETABLE

于 2013-06-12T14:25:40.273 に答える