テーブルの 1 つに行を挿入する手順があります。
プロシージャの INSERT の後、すべての行を別のテーブルに検索してから、2 番目のテーブルの挿入プロシージャを呼び出します。
だから私はうまくいくすべての最初の手順を持っています
P_INSERT_TABLE1
INSERT INTO TABLE1
...
COMMIT;
FOR record_po IN (SELECT C3, ...
FROM T_TABLE2
WHERE id = v_id)
LOOP
P_INSERT_TABLE2(record_po.C3, ...);
END LOOP;
P_INSERT_TABLE2 のすべての「パラメータ」は VARCHAR2 であるため、各列の「to_char」は varchar2 ではありません。
P_INSERT_TABLE2(pi_id,
record_po.C3,
record_po.C4,
record_po.C5,
record_po.C6,
record_po.C7,
to_char(record_po.C8, 'DD/MM/YYYY');
ここで、pi_id は、VARCHAR2 の P_INSERT_TABLE1 の in パラメータの 1 つです。
だから今、私はこのエラーメッセージを持っています:
Erreur(357,1): PLS-00306: number or args types wrong in the call of P_INSERT_TABLE2
P_INSERT_TABLE2 がパラメーターを受け入れないのに、すべての適切な型が適切な順序で配置されている理由がわかりません。
" " のようなプロシージャを呼び出すと、次のようcall P_INSERT_TABLE2(...)
なエラーが発生します。
Erreur(357,9): PLS-00103: Symbol "P_INSERT_TABLE2" instead one of this symbols : := . ( @ % ; immediate Symbole ":="
create or replace
PROCEDURE P_INSERT_TABLE2 (
pi_id IN VARCHAR2
,pi_C3 IN VARCHAR2
,pi_C4 IN VARCHAR2
,pi_C5 IN VARCHAR2
,pi_C6 IN VARCHAR2
,pi_C7 IN VARCHAR2
,pi_C8 IN VARCHAR2
,pmessage OUT NOCOPY VARCHAR2
)
助けてくれてありがとう。