Anda di halaman 1dari 3

set serveroutput on

Accept ordnum prompt 'Enter order number - '

Accept ord_date prompt 'Enter order date - '

declare

fileID UTL_FILE.FILE_TYPE;

cursor cur_ord is
select order_no,abbreviation,customer_no,status_code
from oeorder_header
where (to_char(order_no)='&ordnum') or
(to_char(create_date,'DD/MM/YYYY')='&ord_date') and ROWNUM<=10;

Begin

fileID := UTL_FILE.FOPEN ('/shares06/apps/dev/tmp', 'test1.txt', 'W');

For i in cur_ord loop

DBMS_OUTPUT.PUT_LINE(i.order_no || ' '||i.abbreviation|| ' '||i.customer_no||' '||


i.status_code);

UTL_FILE.PUT_LINE (fileID,TO_CHAR (i.order_no) || ',' ||i.abbreviation || ',' ||


TO_CHAR (i.customer_no)||',' ||TO_CHAR (i.status_code));

Declare

cursor cur_ord_det is
select order_no,line_no,part_no,buy_qty_due, warehouse
from oeorder_detail
where order_no=i.order_no and ROWNUM<=10;

Begin

For j in cur_ord_det loop

DBMS_OUTPUT.PUT_LINE(j.order_no||' '||j.line_no||' '||j.part_no||' '||


j.buy_qty_due||' '||j.warehouse);
UTL_FILE.PUT_LINE (fileID,TO_CHAR (j.order_no) || ',' ||to_char(j.line_no)
|| ',' ||TO_CHAR (j.part_no)||',' ||TO_CHAR (j.buy_qty_due)||',' ||TO_CHAR
(j.warehouse));

Declare
cursor cur_ship is
select shipment_no,part_no,qty_shipped,ship_date,
pick_list_no,invoice_no
from oeorder_shipping
where order_no=i.order_no;

begin
for k in cur_ship loop

DBMS_OUTPUT.PUT_LINE(k.shipment_no||' '||k.qty_shipped||' '||


k.ship_date||' '||k.pick_list_no||' '||k.invoice_no);
UTL_FILE.PUT_LINE (fileID,TO_CHAR (k.shipment_no) || ',' ||
to_char(k.qty_shipped) || ',' ||TO_CHAR (k.ship_date)||',' ||TO_CHAR
(k.pick_list_no)||',' ||TO_CHAR (k.invoice_no));

if k.invoice_no is not NULL then


/*invnum:= k.invoice_no; */

declare

cursor cur_inv_head is
select invoice_id, billing_id, invoice_date, status_date,
base_total_inv_amt,customer_po_no, warehouse
from invoice_headers
where invoice_id=k.invoice_no;

begin

for l in cur_inv_head loop

DBMS_OUTPUT.PUT_LINE(l.invoice_id||' '||l.billing_id||' '||


l.invoice_date||' '||l.status_date||' '||l.base_total_inv_amt||' '||
l.customer_po_no||' '||l.warehouse);
UTL_FILE.PUT_LINE (fileID,TO_CHAR (l.invoice_id) || ',' ||
to_char(l.billing_id) || ',' ||TO_CHAR (l.invoice_date)||',' ||TO_CHAR
(l.status_date)||',' ||TO_CHAR (l.base_total_inv_amt)||',' ||TO_CHAR
(l.customer_po_no)||',' ||TO_CHAR (l.warehouse));

Declare
cursor cur_inv_lin is
select invoice_line_no, customer_part_no,invoice_qty,
base_total_line_amt
from invoice_lines
where invoice_id=k.invoice_no and ROWNUM<=10;

Begin

for m in cur_inv_lin loop

DBMS_OUTPUT.PUT_LINE(m.invoice_line_no||' '||
m.customer_part_no||' '||m.invoice_qty||' '||m.base_total_line_amt);
UTL_FILE.PUT_LINE (fileID,TO_CHAR (m.invoice_line_no) ||
',' ||to_char(m.customer_part_no) || ',' ||TO_CHAR (m.invoice_qty)||',' ||TO_CHAR
(m.base_total_line_amt));

end loop;
end;

end loop;
end;

end if;
end loop;
end;

end loop;
end;

end loop;
UTL_FILE.FCLOSE (fileID);

Exception

WHEN UTL_FILE.INVALID_PATH
THEN dbms_output.put_line('Invalid path!!');

WHEN UTL_FILE.write_error
THEN dbms_output.put_line('Write error!!');

WHEN UTL_FILE.invalid_filehandle
THEN dbms_output.put_line('invalid_filehandle!!');

WHEN UTL_FILE.invalid_operation
THEN dbms_output.put_line('invalid_operation!!');

WHEN UTL_FILE.internal_error
THEN dbms_output.put_line('internal_error!!');

WHEN UTL_FILE.invalid_mode
THEN dbms_output.put_line('invalid_mode!!');

end;

Anda mungkin juga menyukai