これを行うにはおそらく多くの方法があります。例として、注文ごとに顧客番号と発注書番号が必要であると想定します。その場合、次のことができます。
PROCEDURE ADD_A_BUNCH_OF_ORDERS(CUST_NUM_1 IN NUMBER,
PO_NUM_1 IN NUMBER,
CUST_NUM_2 IN NUMBER,
PO_NUM_2 IN NUMBER,
CUST_NUM_3 IN NUMBER DEFAULT NULL,
PO_NUM_3 IN NUMBER DEFAULT NULL,
CUST_NUM_4 IN NUMBER DEFAULT NULL,
PO_NUM_4 IN NUMBER DEFAULT NULL,
CUST_NUM_5 IN NUMBER DEFAULT NULL,
PO_NUM_5 IN NUMBER DEFAULT NULL,
CUST_NUM_6 IN NUMBER DEFAULT NULL,
PO_NUM_6 IN NUMBER DEFAULT NULL,
CUST_NUM_7 IN NUMBER DEFAULT NULL,
PO_NUM_7 IN NUMBER DEFAULT NULL,
CUST_NUM_8 IN NUMBER DEFAULT NULL,
PO_NUM_8 IN NUMBER DEFAULT NULL,
CUST_NUM_9 IN NUMBER DEFAULT NULL,
PO_NUM_9 IN NUMBER DEFAULT NULL,
CUST_NUM_10 IN NUMBER DEFAULT NULL,
PO_NUM_10 IN NUMBER DEFAULT NULL)
IS
BEGIN
ADD_ORDER(CUST_NUM_1, PO_NUM_1);
ADD_ORDER(CUST_NUM_2, PO_NUM_2);
IF CUST_NUM_3 IS NOT NULL AND
PO_NUM_3 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_3, PO_NUM_3);
END IF;
IF CUST_NUM_4 IS NOT NULL AND
PO_NUM_4 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_4, PO_NUM_4);
END IF;
IF CUST_NUM_5 IS NOT NULL AND
PO_NUM_5 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_5, PO_NUM_5);
END IF;
IF CUST_NUM_6 IS NOT NULL AND
PO_NUM_6 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_6, PO_NUM_6);
END IF;
IF CUST_NUM_7 IS NOT NULL AND
PO_NUM_7 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_7, PO_NUM_7);
END IF;
IF CUST_NUM_8 IS NOT NULL AND
PO_NUM_8 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_8, PO_NUM_8);
END IF;
IF CUST_NUM_9 IS NOT NULL AND
PO_NUM_9 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_9, PO_NUM_9);
END IF;
IF CUST_NUM_10 IS NOT NULL AND
PO_NUM_10 IS NOT NULL
THEN
ADD_ORDER(CUST_NUM_10, PO_NUM_10);
END IF;
END ADD_A_BUNCH_OF_ORDERS;
次に、ADD_ORDERプロシージャを実装して、指定された特定の順序を追加する必要があります。
おそらく最もエレガントな方法ではありませんが、方法です。:-)
共有してお楽しみください。