パッケージと本体は以下の通りです。 CREATE OR REPLACE PACKAGE INSERT_TKTANAJI IS PROCEDURE sp_ins (HOKAN_KBN CHAR, ST_NO NUMBER, MAKER_CD CHAR, SYOHIN_CD CHAR, LOCATION_NO CHAR, i_count INTEGER); END INSERT_TKTANAJI; /
CREATE OR REPLACE PACKAGE BODY INSERT_TKTANAJI IS PROCEDURE sp_ins (HOKAN_KBN CHAR, ST_NO NUMBER, MAKER_CD CHAR, SYOHIN_CD CHAR, LOCATION_NO CHAR, i_count INTEGER) IS i_index INTEGER; BEGIN For i_index In 1..i_count LOOP INSERT INTO tktanaji VALUES (HOKAN_KBN(i_index) , ST_NO(i_index) , MAKER_CD(i_index) , SYOHIN_CD(i_index) , LOCATION_NO(i_index) ; END LOOP; Exception WHEN DUP_VAL_ON_INDEX THEN NULL; END sp_ins; END INSERT_TKTANAJI; /
こんにちは 上記のドキュメントを参照していますが、 うまくいきません。TYPEの定義の問題だと思いますが、 原因がどこにあるかはよくわかりません。 TYPE tktanaji IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; で定義すると、コンパイルはうまくいきますが、 VB.NETから実行すると、 pls-00418:配列バインドの型はPL/SQL表の行の型と一致する必要があります。 というエラーが出てきます。 これを解決できなく、TYPE定義をはずしたら、 PLS-00222のエラーに変りました。 プログラムの修正がかなり長引いたので、すごく困っています。