1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
CREATE TABLE CLIENT_ORDER
(
PO_NUMBER VARCHAR2(12) NOT NULL ENABLE ,
QTY NUMBER(12,6) ,
CONSTRAINT PK_MANUFACTURE_ORDER PRIMARY KEY (PO_NUMBER)
)
;
/
CREATE TABLE SO_SHOP_ORDER
(
PO_NUMBER VARCHAR2(12) NOT NULL ,
NUMOF VARCHAR2(6) NOT NULL ,
QTE_OF NUMBER(10,5) ,
CONSTRAINT PK_SO_SHOP_ORDER PRIMARY KEY (NUMOF),
CONSTRAINT FK_CLIENT_ORDER FOREIGN KEY (PO_NUMBER) REFERENCES
CLIENT_ORDER (PO_NUMBER) ON DELETE CASCADE ENABLE
);
/
CREATE TABLE SO_SUBMIXING
(
NUMOF VARCHAR2(6) NOT NULL ,
IDSM VARCHAR2(12) NOT NULL ,
QTE_SM NUMBER(10,5) ,
CONSTRAINT PK_SO_SUBMIXING PRIMARY KEY (NUMOF, IDSM) USING INDEX
CONSTRAINT FK_SHOP_ORDER_SUBMIXING FOREIGN KEY (NUMOF) REFERENCES
SO_SHOP_ORDER (NUMOF) ON DELETE CASCADE ENABLE,
);
/
INSERT INTO CLIENT_ORDER VALUES('100106160',100);
INSERT INTO CLIENT_ORDER VALUES('100106161',2356.56);
COMMIT;
/
INSERT INTO SO_SHOP_ORDER VALUES('100160160','5621',50);
INSERT INTO SO_SHOP_ORDER VALUES('100160160','5622',50);
INSERT INTO SO_SHOP_ORDER VALUES('100160161','6001',785.52);
INSERT INTO SO_SHOP_ORDER VALUES('100160161','6002',785.52);
INSERT INTO SO_SHOP_ORDER VALUES('100160161','6003',785.52);
COMMIT;
/
INSERT INTO SO_SUBMIXING VALUES ('5621','3200',25);
INSERT INTO SO_SUBMIXING VALUES ('5621','3201',25);
INSERT INTO SO_SUBMIXING VALUES ('5622','3202',25);
INSERT INTO SO_SUBMIXING VALUES ('5622','3203',25);
INSERT INTO SO_SUBMIXING VALUES ('6001','1200',785.52);
INSERT INTO SO_SUBMIXING VALUES ('6002','1201',785.52);
INSERT INTO SO_SUBMIXING VALUES ('6003','1202',785.52);
COMMIT;
/
set serveroutput on;
Declare
Cursor crs IS SELECT l.po_number,l.QTY,
Cursor(SELECT d.numof,d.QTE_OF,
Cursor (SELECT e.idsm,e.qte_sm
FROM so_submixing e
WHERE e.numof = d.numof
)
FROM so_shop_order d
WHERE d.po_number = l.po_number)
FROM CLIENT_ORDER l;
--
l_po_number CLIENT_ORDER.po_number%Type;
l_qty_po CLIENT_ORDER.qty%Type;
rcrs_dept sys_refcursor;
--
l_numof so_shop_order.numof%Type;
l_qty_of so_shop_order.qte_of%Type;
rcrs_emp sys_refcursor;
--
l_idsm so_submixing.idsm%Type;
l_qty_sm so_submixing.qte_sm%Type;
Begin
Open crs;
Loop
Fetch crs INTO l_po_number, l_qty_po, rcrs_dept;
Exit When crs%NOTFOUND;
Dbms_Output.put_line('Po_number :'||l_po_number);
Dbms_Output.put_line('Qty :'||to_char(l_qty_po));
Loop
Fetch rcrs_dept INTO l_numof, l_qty_of, rcrs_emp;
Exit When rcrs_dept%NOTFOUND;
Dbms_Output.put_line(' Num Of :'||l_numof);
Dbms_Output.put_line(' Qty Of :'||to_char(l_qty_of));
Loop
Fetch rcrs_emp INTO l_idsm, l_qty_sm;
Exit When rcrs_emp%NOTFOUND;
Dbms_Output.put_line(' IDSM :'||l_idsm);
Dbms_Output.put_line(' Qty :'||to_char(l_qty_sm));
End Loop;
End Loop;
End Loop;
Close crs;
End; |
Partager