EOF in utl_file

Hi
I want to read a file using utl_file package but the problem is that my files has few blank lines is when i run the Loop my program crashes.. Can anyone help how to display the full file.
Cheers

Blank lines (a line with only a linefeed) will not crash a get_line call. Please post your file-reading code.

Similar Messages

  • UTL_FILE.get_line won't read large files ?

    I am trying to read a large fixed length flat file. If I cut the file down to really small it will read it but it reads it as a single line. If I try to read a larger file > 32k I get a READ_ERROR. I am pretty sure it has to do with the end of line marker but I saw nothing about that in the UTL_FILE documentation. This is on UNIX, new line character after each record in the file. Standard unix flat file.
    Any ideas on what to do?
    Thanks in advance
    Matt
    [email protected]
    my code:
    BEGIN
    BEGIN
    std_file := UTL_FILE.FOPEN('&4','&1','r',32767);
    EXCEPTION
    WHEN UTL_FILE.INVALID_PATH THEN
    RAISE_APPLICATION_ERROR(-20011,'Invalid Path for STD file, &4/&1');
    WHEN OTHERS THEN
    RAISE_APPLICATION_ERROR(-20014,'Other Error trying to open STD file, &4/&1');
    END;
    IF UTL_FILE.is_open(std_file) = FALSE THEN
    RAISE_APPLICATION_ERROR(-20015,'Could not open STD file, &4/&1');
    END IF;
    -- READ STD FILE HEADER
    BEGIN
    UTL_FILE.get_line(std_file,hdr_text);
    EXCEPTION
    WHEN UTL_FILE.INVALID_FILEHANDLE THEN
    RAISE_APPLICATION_ERROR(-20017,'STD read file handle not valid');
    WHEN UTL_FILE.INVALID_OPERATION THEN
    RAISE_APPLICATION_ERROR(-20018,'STD read invalid operation error');
    WHEN UTL_FILE.READ_ERROR THEN
    RAISE_APPLICATION_ERROR(-20019,'STD read error');
    WHEN NO_DATA_FOUND THEN
    RAISE_APPLICATION_ERROR(-20020,'STD read no data found');
    WHEN VALUE_ERROR THEN
    RAISE_APPLICATION_ERROR(-20021,'STD read value error');
    END;
    -- PROCESS TRANSACTIONS
    LOOP
    BEGIN
    tran_text := NULL;
    UTL_FILE.get_line(std_file,tran_text);
    EXCEPTION
    WHEN no_data_found THEN EXIT; -- EOF
    WHEN value_error THEN
    RAISE_APPLICATION_ERROR(-20010,'STD record too long.');
    END;
    std_rowcount := std_rowcount + 1;
    END LOOP;
    UTL_FILE.FCLOSE(std_file);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    RAISE_APPLICATION_ERROR(-20001,'No Data Found.');
    WHEN UTL_FILE.INVALID_PATH THEN
    RAISE_APPLICATION_ERROR(-20002,'Invalid Path ');
    WHEN UTL_FILE.INVALID_MODE THEN
    RAISE_APPLICATION_ERROR(-20003,'Invalid Mode ');
    WHEN UTL_FILE.INVALID_OPERATION THEN
    RAISE_APPLICATION_ERROR(-20004,'Invalid Operation ');
    END;
    null

    We are still hung up on this. I tried implementing the code from STEVE'S XML book but still haven't resovled it.
    The clob is being created via XSU see below. The new char[8192] appeasr to force the output file to 8K
    with trailing characters on small clobs but adds a carraige return each 8K on larger ones.
    As usual any input is appreciated from all. Doese anyone know of a good JAVA forum like this one?
    Thanks
    PROCEDURE BuildXml(v_return OUT INTEGER, v_message OUT VARCHAR2,string_in VARCHAR2,xml_CLOB OUT NOCOPY CLOB) IS
    queryCtx DBMS_XMLquery.ctxType;
    Buffer RAW(1024);
    Amount BINARY_INTEGER := 1024;
    Position INTEGER := 1;
    sql_string     VARCHAR2(2000) := string_in;
    BEGIN
    v_return := 1;
    v_message := 'BuildXml completed succesfully.';
    queryCtx := DBMS_XMLQuery.newContext(sql_string);
    xml_CLOB := DBMS_XMLQuery.getXML(queryCtx);
    DBMS_XMLQuery.closeContext(queryCtx);
    EXCEPTION WHEN OTHERS THEN
    v_return := 0;
    v_message := 'BuildXml failed - '||SQLERRM;
    END BuildXml;
    create or replace and compile java source named sjs.write_CLOB as
    import java.io.*;
    import java.sql.*;
    import java.math.*;
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    public class write_CLOB extends Object
    public static void pass_str_array(oracle.sql.CLOB p_in,java.lang.String f_in)
    throws java.sql.SQLException, IOException
    File target = new File(f_in);
    FileWriter fw = new FileWriter(target);
    BufferedWriter out = new BufferedWriter(fw);
    Reader is = p_in.getCharacterStream();
    char buffer[] = new char[8192];
    int length;
    while( (length=is.read(buffer)) != -1) {
    out.write(buffer);
    is.close();
    fw.close();
    /

  • Using SQL*Loader and UTL_FILE to load and unload large files(i.e PDF,DOCs)

    Problem : Load PDF or similiar files( stored at operating system) into an oracle table using SQl*Loader .
    and than Unload the files back from oracle tables to prevoius format.
    I 've used SQL*LOADER .... " sqlldr " command as :
    " sqlldr scott/[email protected] control=c:\sqlldr\control.ctl log=c:\any.txt "
    Control file is written as :
    LOAD DATA
    INFILE 'c:\sqlldr\r_sqlldr.txt'
    REPLACE
    INTO table r_sqlldr
    Fields terminated by ','
    id sequence (max,1) ,
    fname char(20),
    data LOBFILE(fname) terminated by EOF )
    It loads files ( Pdf, Image and more...) that are mentioned in file r_sqlldr.txt into oracle table r_sqlldr
    Text file ( used as source ) is written as :
    c:\kalam.pdf,
    c:\CTSlogo1.bmp
    c:\any1.txt
    after this load ....i used UTL_FILE to unload data and write procedure like ...
    CREATE OR REPLACE PROCEDURE R_UTL AS
    l_file UTL_FILE.FILE_TYPE;
    l_buffer RAW(32767);
    l_amount BINARY_INTEGER ;
    l_pos INTEGER := 1;
    l_blob BLOB;
    l_blob_len INTEGER;
    BEGIN
    SELECT data
    INTO l_blob
    FROM r_sqlldr
    where id= 1;
    l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
    DBMS_OUTPUT.PUT_LINE('blob length : ' || l_blob_len);
    IF (l_blob_len < 32767) THEN
    l_amount :=l_blob_len;
    ELSE
    l_amount := 32767;
    END IF;
    DBMS_LOB.OPEN(l_blob, DBMS_LOB.LOB_READONLY);
    l_file := UTL_FILE.FOPEN('DBDIR1','Kalam_out.pdf','w', 32767);
    DBMS_OUTPUT.PUT_LINE('File opened');
    WHILE l_pos < l_blob_len LOOP
    DBMS_LOB.READ (l_blob, l_amount, l_pos, l_buffer);
    DBMS_OUTPUT.PUT_LINE('Blob read');
    l_pos := l_pos + l_amount;
    UTL_FILE.PUT_RAW(l_file, l_buffer, TRUE);
    DBMS_OUTPUT.PUT_LINE('writing to file');
    UTL_FILE.FFLUSH(l_file);
    UTL_FILE.NEW_LINE(l_file);
    END LOOP;
    UTL_FILE.FFLUSH(l_file);
    UTL_FILE.FCLOSE(l_file);
    DBMS_OUTPUT.PUT_LINE('File closed');
    DBMS_LOB.CLOSE(l_blob);
    EXCEPTION
    WHEN OTHERS THEN
    IF UTL_FILE.IS_OPEN(l_file) THEN
    UTL_FILE.FCLOSE(l_file);
    END IF;
    DBMS_OUTPUT.PUT_LINE('Its working at last');
    END R_UTL;
    This loads data from r_sqlldr table (BOLBS) to files on operating system ,,,
    -> Same procedure with minor changes is used to unload other similar files like Images and text files.
    In above example : Loading : 3 files 1) Kalam.pdf 2) CTSlogo1.bmp 3) any1.txt are loaded into oracle table r_sqlldr 's 3 rows respectively.
    file names into fname column and corresponding data into data ( BLOB) column.
    Unload : And than these files are loaded back into their previous format to operating system using UTL_FILE feature of oracle.
    so PROBLEM IS : Actual capacity (size ) of these files is getting unloaded back but with quality decreased. And PDF file doesnt even view its data. means size is almot equal to source file but data are lost when i open it.....
    and for images .... imgaes are getting loaded an unloaded but with colors changed ....
    Also features ( like FFLUSH ) of Oracle 've been used but it never worked
    ANY SUGGESTIONS OR aLTERNATE SOLUTION TO LOAD AND UNLOAD PDFs through Oracle ARE REQUESTED.
    ------------------------------------------------------------------------------------------------------------------------

    Thanks Justin ...for a quick response ...
    well ... i am loading data into BLOB only and using SQL*Loader ...
    I've never used dbms_lob.loadFromFile to do the loads ...
    i 've opend a file on network and than used dbms_lob.read and
    UTL_FILE.PUT_RAW to read and write data into target file.
    actually ...my process is working fine with text files but not with PDF and IMAGES ...
    and your doubt of ..."Is the data the proper length after reading it in?" ..m not getting wat r you asking ...but ... i think regarding data length ..there is no problem... except ... source PDF length is 90.4 kb ..and Target is 90.8 kb..
    thats it...
    So Request u to add some more help ......or should i provide some more details ??

  • UTL_FILE help/samples

    Hello Folks,
    I need to write a routine to read in a CSV file parse it and inser the data into a table.
    Does anybody have examples?
    TIA

    Use this as a skeleton:
    set serveroutput on size 1000000 format word_wrapped
    set verify off
    DECLARE
    EOF CONSTANT VARCHAR2(30) := '~~+~~+~~';
    iCount NUMBER;
    sEOF VARCHAR2(30);
    sPath VARCHAR2(2000);
    sRecord VARCHAR2(2000);
    sSQLCode NUMBER;
    sSQLErrM VARCHAR2(255);
    pFileHandle utl_file.file_type;
    BEGIN
    dbms_output.enable(1000000);
    iCount := 0;
    sEOF := '';
    sPath := 'C:\Data';
    pFileHandle := utl_file.fopen(sPath, 'file.cvs', 'r');
    loop
    BEGIN
    utl_file.get_line(pFileHandle, sRecord);
    EXCEPTION
    when NO_DATA_FOUND then sEOF := EOF;
    END;
    exit when sEOF = EOF;
    iCount := iCount + 1;
    dbms_output.put_line(sRecord);
    end loop;
    commit;
    dbms_output.put_line("Records read: "&#0124; &#0124;iCount);
    utl_file.fclose(pFileHandle);
    EXCEPTION
    when UTL_FILE.INVALID_OPERATION then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20001, 'Invalid Operation');
    when UTL_FILE.INVALID_FILEHANDLE then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20002, 'Invalid File Handle');
    when UTL_FILE.WRITE_ERROR then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20003, 'Write Error');
    when UTL_FILE.INTERNAL_ERROR then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20004, 'Internal Error');
    when UTL_FILE.INVALID_PATH then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20005, 'Invalid Path ['&#0124; &#0124;sPath&#0124; &#0124;']');
    when UTL_FILE.INVALID_MODE then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20006, 'Invalid Mode');
    when UTL_FILE.READ_ERROR then
    utl_file.fclose(pFileHandle);
    raise_application_error(-20007, 'Read Error');
    when OTHERS then
    utl_file.fclose(pFileHandle);
    sSQLCode := SQLCODE;
    sSQLErrM := substr(SQLERRM, 1, 255);
    raise_application_error(-20008, sSQLCode&#0124; &#0124;' - '&#0124; &#0124;sSQLErrM);
    END;
    To chop the record into separate fields you must use something like:
    iStart := instr(sRecord, '|', 1, 2) + 1;
    iLen := instr(sRecord, '|', 1, 3) - iStart;
    if iLen = 0 then
    sField := '#NULL#';
    else
    sField := substr(sRecord, iStart, iLen);
    null

  • Utl_file simultaneous usage

    i will use a stored procedure for db-logging in a file using utl_file (fopen/put_line/fflush/fclose)
    - may i have problems with simultaneous calls to this procedure within different sessions or i must use some kind of locking ?

    user605483 wrote:
    i will use a stored procedure for db-logging in a file using utl_file (fopen/put_line/fflush/fclose)
    - may i have problems with simultaneous calls to this procedure within different sessions or i must use some kind of locking ?Yes - but if you use text and "+write append+" to the file, your code is fairly thread safe.
    The problem is with the file pointer in session A versus session B. Session B writes to the file. This does not advance the file pointer in session A. Thus when session A writes to the file, it overwrites the data just written by session B.
    A write append automatically writes the data at the end of the file (the file pointer is moved to eof and the write happens). Write append is only valid for text files - not binary files (though you can likely simulate it, but it would not make much sense).
    As writes to the same file is serialised (due to the file being opened in shared mode), there's no problem in both sessions doing a write append at the same time. (except for the performance issue of serialisation)
    But the concept of writing log files from an Oracle RDBMS - that is just plain horrible. This is not the 80's anymore (despite us missing the music and hairstyles) and Oracle is not Cobol writing to ISAM files.
    The correct place for logs is inside a plain Oracle SQL table - that can be indexed, partitioned. That can be read and filtered using SQL. That implements concurrency controls. That has Oracle security features. Forms part of the database backup strategy. Etc.
    IMO there is no valid reason for storing PL/SQL processing logs externally. (a debate I've often had in the past with developers and one I have yet to lose)

  • Utl_file.fseek

    Hi all,
    I want to know about the procedure fseek in utl_file
    I know that we can use this procedure to move back or forward in a file without closing and opening it
    but what i cant get is how this works
    say this is the example
    declare
    name varchar2(30);
    f1 utl_file.file_type;
    pos number;
    begin
       f1 := utl_file.fopen('VIR','SEARCH.TXT','R');
       utl_file.fseek(f1,10);
           pos := utl_file.fgetpos(f1);
    dbms_output.put_line ('SUCCESS Seek to abs offset 10, currect position is '||to_char(pos));          
       utl_file.fseek(f1,NULL,5);
           pos := utl_file.fgetpos(f1);
    dbms_output.put_line ('SUCCESS Seek to relative offset 5, currect position is'||to_char(pos));
       utl_file.fseek(f1,10,5);
           pos := utl_file.fgetpos(f1);
    dbms_output.put_line ('SUCCESS Seek to absolute 10 relative offset 5, currect position is'||to_char(pos));
       utl_file.fseek(f1,NULL,-5);
           pos := utl_file.fgetpos(f1);
    dbms_output.put_line ('SUCCESS Seek to rel offset -5, currect position is '||to_char(pos));
       utl_file.fclose(f1);
    end;
    o/p is
    SQL> /
    SUCCESS Seek to abs offset 10, currect position is 10
    SUCCESS Seek to relative offset 5, currect position is15
    SUCCESS Seek to absolute 10 relative offset 5, currect position is10
    SUCCESS Seek to rel offset -5, currect position is 5
    PL/SQL procedure successfully completed.What i dont understand is when i am using both absolute and relative offset i.e abs = 10 and rel = 5
    then why its current position is 10 when i thought it would be 15?
    please correct me if i am wrong.
    or does it not consider the relative offset when the absolute is given
    What i am thinking is when absolute and relative offset in fseek is present then the position should be
    absolute + relative.
    when absolute is null and relative is present the position would be
    current position +/- relative offset
    and if relative offset is null and absolute is present the current position is
    absolute offset
    thanks

    Although it is not explicitly stated in the documentation, I beleieve that fseek is an either or proposition. That is, you supply either absolute or relative position. If you supply both, then only the first parameter (absolute) is evaluated.
    My guess would be that somewhere in the internals, the utl_file.fseek procedure calls the c function fseek which is defined as:
    int fseek(FILE *stream, long offset, int whence);where whence is a constant defined in stdio.h as:
    SEEK_SET  Set position equal to offset bytes.
    SEEK_CUR  Set  position  to  current   location   plus
    SEEK_END  Set position to EOF plus offset.So, in psuedo code
    IF absolute_offset is not null then
       call c.fseek (filepointer, absolute_offset, SEEK_SET);
    elsif relative_offset is not null then
          call c.fseek (filepointer, relative_offset, SEEK_CUR);
    else
       do nothing
    end if;John

  • Help needed in utl_file

    Hi,
    I have two groups in data model of my report. I am using utl_file in a formula column of report last group.it's working fine.
    but my problem is if customer has more than one invoice lines
    then all that lines not comes under only particular customer only at a time.
    For example my output is coming like this:
    Customer address: 3345 LIMITED-STUDIOS : 00033-45 PARR STREETLIVERPOOLCHESHIRE
    Invoice Lines: 0001000402106-JUL-07INV 10.47
    Customer address: 3345 LIMITED-STUDIOS : 00033-45 PARR STREETLIVERPOOLCHESHIRE
    Invoice Lines: 0001000402713-JUL-07INV 10.77
    But I am trying to get output like this:
    Customer address: 3345 LIMITED-STUDIOS : 00033-45 PARR STREETLIVERPOOLCHESHIRE
    Invoice Lines: 0001000402106-JUL-07INV 10.47
              0001000402713-JUL-07INV 10.77
    I am using fallowing code in my formula column:
    function CF_UTL_FILEFormula return Char is
    v_file_data utl_file.file_type;
    begin
    utl_file.put_line(v_file_data,:SEND_CUSTOMER_NAME:SEND_ADDRESS1:SEND_ADDRESS2:SEND_ADDRESS3:SEND_ADDRESS4:SEND_CITY:SEND_STATE:SEND_COUNTRY_DESC:SEND_POSTAL_CODE);
    utl_file.put_line(v_file_data,LN1:CF_LOCATION:C_DELIVERY_DATE:INVOICE_NUMBER:TRX_DATE:c_transaction_type:CD_TRX_AMOUNT);
    utl_file.fclose(v_file_data);
    end;
    Please help me how can I do this?

    What's the source of your Summary Column? It's not allowed to choose here the formula column in whcih you reference the summary column back. But another column should work.
    As alternativ add a formula column in the upper group with
    utl_file.put_line(v_file_data,:SEND_CUSTOMER_NAME:SEND_ADDRESS1:SEND_ADDRESS2:SEND_ADDRESS3:SEND_ADDRESS4:SEND_CITY:SEND_STATE:SEND_COUNTRY_DESC:SEND_POSTAL_CODE);
    and remove the same line out of the other formula column.

  • Error when Bursting - XML Parser expected '-- ' instead of 'EOF'.

    Hi,
    We're generating invoices using BI Publisher as one large XML report, then routing them to customers using the concurrent bursting program to break up the xml by customer and faxing / emailing / printing as needed.
    the report seems to generate properly - here's a sample:
    <?xml version="1.0"?>
    <!-- Generated by Oracle Reports version 6.0.8.27.0 -->
    <DWDRAXINV>
    <LIST_G_ORDER_BY>
    <G_ORDER_BY>
    <ORDER_BY>100800</ORDER_BY>
    <LIST_G_INVOICE>
    <G_INVOICE>
    <CUSTOMER_TRX_ID>xx</CUSTOMER_TRX_ID>
    <TRX_NUMBER>100800</TRX_NUMBER>
    <TRX_TYPE>INV</TRX_TYPE>
    <TRX_TYPE_NAME>Invoice</TRX_TYPE_NAME>
    <OPEN_RECEIVABLE_FLAG>Y</OPEN_RECEIVABLE_FLAG>
    <TRX_DATE>04-APR-05</TRX_DATE>
    <BILL_TO_CUSTOMER_ID>40214</BILL_TO_CUSTOMER_ID>
    <BILL_TO_CONTACT_ID/>
    <SHIP_TO_CUSTOMER_ID>9663</SHIP_TO_CUSTOMER_ID>
    <SHIP_TO_CONTACT_ID/>
    <REMIT_TO_ADDRESS_ID>1210</REMIT_TO_ADDRESS_ID>
    <BILL_TO_SITE_USE_ID>245883</BILL_TO_SITE_USE_ID>
    <PRIMARY_SALESREP_ID>xx</PRIMARY_SALESREP_ID>
    <CUSTOMER_NUMBER>xx</CUSTOMER_NUMBER>
    <INTERNAL_NOTES/>
    <PREVIOUS_CUSTOMER_TRX_ID/>
    <SHIP_TO_SITE_USE_ID>55369</SHIP_TO_SITE_USE_ID>
    <BATCH_SOURCE_ID>1024</BATCH_SOURCE_ID>
    <PRINTING_COUNT>9</PRINTING_COUNT>
    <PRINTING_ORIGINAL_DATE>05-APR-05</PRINTING_ORIGINAL_DATE>
    <LAST_PRINTED_SEQUENCE_NUMBER>1</LAST_PRINTED_SEQUENCE_NUMBER>
    <START_DATE_COMMITMENT/>
    <END_DATE_COMMITMENT/>
    <INITIAL_CUSTOMER_TRX_ID/>
    <INVOICE_CURRENCY_CODE>USD</INVOICE_CURRENCY_CODE>
    <BILL_CUST_NAME>xx</BILL_CUST_NAME>
    <BILL_ADDRESS1>xx</BILL_ADDRESS1>
    <BILL_ADDRESS2>xx</BILL_ADDRESS2>
    <BILL_ADDRESS3>xx</BILL_ADDRESS3>
    <BILL_ADDRESS4/>
    <BILL_CITY>CONCORD</BILL_CITY>
    <BILL_STATE>CA</BILL_STATE>
    <BILL_POSTAL_CODE>94524-xx</BILL_POSTAL_CODE>
    <BILL_COUNTRY>US</BILL_COUNTRY>
    <TERM_ID>1016</TERM_ID>
    <PURCHASE_ORDER_REVISION/>
    <PURCHASE_ORDER_DATE/>
    <TRX_COMMENTS/>
    <BILL_TO_LOCATION>PO BOX Q</BILL_TO_LOCATION>
    <BILL_TO_ADDRESS1>PO BOX xx1</BILL_TO_ADDRESS1>
    <BILL_TO_ADDRESS2>xx</BILL_TO_ADDRESS2>
    <BILL_TO_ADDRESS3>10365268 / 348025</BILL_TO_ADDRESS3>
    <BILL_TO_ADDRESS4/>
    <BILL_TO_STATE>CA</BILL_TO_STATE>
    <BILL_TO_PROVINCE/>
    <LIST_G_INV_TERM>
    <G_INV_TERM>
    <SALES_ORDER_NUMBER>15042116</SALES_ORDER_NUMBER>
    <INTERFACE_HEADER_CONTEXT>ORDER ENTRY</INTERFACE_HEADER_CONTEXT>
    <PARTY_ID>43923</PARTY_ID>
    <C_ACCT_ID>40214</C_ACCT_ID>
    <TERM_SEQUENCE_NUMBER>1</TERM_SEQUENCE_NUMBER>
    <SHIP_DATE_ACTUAL>04-APR-05</SHIP_DATE_ACTUAL>
    <SHIP_VIA/>
    <WAYBILL_NUMBER>0</WAYBILL_NUMBER>
    <CREDIT_MEMO_TYPE_ID>1130</CREDIT_MEMO_TYPE_ID>
    <BILL_TO_ADDRESS_ID/>
    <TRX_ORG>509</TRX_ORG>
    <PURCHASE_ORDER_NUMBER>9373872-4</PURCHASE_ORDER_NUMBER>
    <TERM_DUE_DATE_FROM_PS>05-APR-05</TERM_DUE_DATE_FROM_PS>
    <TRX_LINE_AMOUNT>85</TRX_LINE_AMOUNT>
    <TRX_TAX_AMOUNT>0</TRX_TAX_AMOUNT>
    <BILL_CUST_TAX_REFERENCE/>
    <TERM_RELATIVE_AMOUNT>100</TERM_RELATIVE_AMOUNT>
    <PRINTING_LAST_PRINTED>11-JAN-08</PRINTING_LAST_PRINTED>
    <TRX_ALL_AMOUNT>85</TRX_ALL_AMOUNT>
    <PRINTING_PENDING>N</PRINTING_PENDING>
    <BILL_SITE_TAX_REFERENCE/>
    <TRX_FREIGHT_AMOUNT>0</TRX_FREIGHT_AMOUNT>
    <TERM_NAME>COD</TERM_NAME>
    <LIST_G_LINE_TOTAL>
    <G_LINE_TOTAL>
    <LINE_OF_TYPE_FRT>A</LINE_OF_TYPE_FRT>
    <ORDER_BY1>1</ORDER_BY1>
    <LINK_TO_LINE>2445027</LINK_TO_LINE>
    <DUMMY>1</DUMMY>
    <LIST_G_LINES>
    <G_LINES>
    <LINE_ORDER>1</LINE_ORDER>
    <LINE_NUMBER>1</LINE_NUMBER>
    <ASSET_CREATION_CODE>43883</ASSET_CREATION_CODE>
    <EQUIPMENT_TYPE>1</EQUIPMENT_TYPE>
    <CONFIG_MODEL_TYPE>STANDARD</CONFIG_MODEL_TYPE>
    <BUYER_ID>113851</BUYER_ID>
    <UN_NUMBER_ID>433207</UN_NUMBER_ID>
    <INVOICING_RULE_ID>0</INVOICING_RULE_ID>
    <INVENTORY_ITEM_STATUS_CODE>TRAVEL LAB</INVENTORY_ITEM_STATUS_CODE>
    <DEFAULT_SO_SOURCE_TYPE>433207</DEFAULT_SO_SOURCE_TYPE>
    <CONTACT_NAME/>
    <ITEM_NUMBER>TRAVEL-CA</ITEM_NUMBER>
    <LINE_CUSTOMER_TRX_ID>179471</LINE_CUSTOMER_TRX_ID>
    <LINE_CUSTOMER_TRX_LINE_ID>2445027</LINE_CUSTOMER_TRX_LINE_ID>
    <SALES_ORDER_LINE_NUMBER>1</SALES_ORDER_LINE_NUMBER>
    <LINE_CHILD_INDICATOR>0</LINE_CHILD_INDICATOR>
    <LINE_TYPE>LINE</LINE_TYPE>
    <LINE_ITEM_DESCRIPTION>TRAVEL LABOR - CA</LINE_ITEM_DESCRIPTION>
    <LINE_QTY_ORDERED>.5</LINE_QTY_ORDERED>
    <LINE_QTY_INVOICED>.5</LINE_QTY_INVOICED>
    <LINE_UOM>HOUR</LINE_UOM>
    <LINE_UNIT_SELLING_PRICE>68</LINE_UNIT_SELLING_PRICE>
    <LINE_EXTENDED_AMOUNT>34</LINE_EXTENDED_AMOUNT>
    <LINE_NET_AMOUNT>34</LINE_NET_AMOUNT>
    <LINE_TAX_RATE/>
    <LINE_VAT_TAX_ID>1245</LINE_VAT_TAX_ID>
    <LINE_TAX_EXEMPTION_ID/>
    <LINE_LOCATION_RATE_ID/>
    <LINK_TO_CUST_TRX_LINE_ID>-1</LINK_TO_CUST_TRX_LINE_ID>
    <LINE_TAX_PRECEDENCE/>
    <LINE_IS_A_CHILD_FLAG>N</LINE_IS_A_CHILD_FLAG>
    <LINE_TAX_INCLUSIVE>N</LINE_TAX_INCLUSIVE>
    <LINE_SALES_ORDER_DATE>04-APR-05</LINE_SALES_ORDER_DATE>
    <LINE_SALES_ORDER>15042116</LINE_SALES_ORDER>
    <LIST_G_TAX_RATE>
    <G_TAX_RATE>
    <LINE_CUSTOMER_TRX_ID1>179471</LINE_CUSTOMER_TRX_ID1>
    <LINK_TO_CUST_TRX_LINE_ID1>2445027</LINK_TO_CUST_TRX_LINE_ID1>
    <LINE_TAX_RATE1>0</LINE_TAX_RATE1>
    </G_TAX_RATE>
    </LIST_G_TAX_RATE>
    <CF_INVOICE_LINE_PRINT_NUMBER>1</CF_INVOICE_LINE_PRINT_NUMBER>
    <C_SER_REQ>43883</C_SER_REQ>
    <C_SHIP_INSTR/>
    <C_SER_REQDATE>10-JAN-05</C_SER_REQDATE>
    <C_PROB_DESC/>
    <C_DISCOUNT>0</C_DISCOUNT>
    <CF_ITEM_DISCOUNT_STRING/>
    <CF_ITEM_DESC_DSP/>
    <C_PRB_RES/>
    <SETLINESPRINTEDFLAG>1</SETLINESPRINTEDFLAG>
    <SET_PRINTED_FLAG/>
    <CF_SERIAL_NUMBER/>
    <D_LINE_UNIT_SELLING_PRICE> 68.00 </D_LINE_UNIT_SELLING_PRICE>
    <CP_LINE_EXTENDED_AMOUNT> 34.00 </CP_LINE_EXTENDED_AMOUNT>
    <CP_DISCOUNT>0</CP_DISCOUNT>
    <LINE_DESCRIPTION>TRAVEL LABOR - CA </LINE_DESCRIPTION>
    <LINE_TAXYN/>
    <CP_LINE_ITEM_AMOUNT>68</CP_LINE_ITEM_AMOUNT>
    <LINE_ITEM_AMOUNT>17</LINE_ITEM_AMOUNT>
    <LINE_TAX_AMOUNT>0</LINE_TAX_AMOUNT>
    <LINE_FREIGHT_AMOUNT>0</LINE_FREIGHT_AMOUNT>
    <LINE_TAX_INCL_AMOUNT>0</LINE_TAX_INCL_AMOUNT>
    <CF_LINE_ALL_AMOUNT>68</CF_LINE_ALL_AMOUNT>
    </G_LINES>
    </LIST_G_LINES>
    <D_LINE_TOTAL> 17.00 </D_LINE_TOTAL>
    <LINE_TOTAL>17</LINE_TOTAL>
    <LINE_CHILDREN_COUNT>0</LINE_CHILDREN_COUNT>
    <MIN_LINK_TO_CUST_TRX_LINE_ID>-1</MIN_LINK_TO_CUST_TRX_LINE_ID>
    <MIN_LINE_TYPE>LINE</MIN_LINE_TYPE>
    <CS_LINE_ALL_TOTAL>68</CS_LINE_ALL_TOTAL>
    </G_LINE_TOTAL>
    <G_LINE_TOTAL>
    <LINE_OF_TYPE_FRT>A</LINE_OF_TYPE_FRT>
    <ORDER_BY1>2</ORDER_BY1>
    <LINK_TO_LINE>2445028</LINK_TO_LINE>
    <DUMMY>1</DUMMY>
    <LIST_G_LINES>
    <G_LINES>
    <LINE_ORDER>2</LINE_ORDER>
    <LINE_NUMBER>2</LINE_NUMBER>
    <ASSET_CREATION_CODE>43883</ASSET_CREATION_CODE>
    <EQUIPMENT_TYPE>2</EQUIPMENT_TYPE>
    <CONFIG_MODEL_TYPE>STANDARD</CONFIG_MODEL_TYPE>
    <BUYER_ID>113851</BUYER_ID>
    <UN_NUMBER_ID>433208</UN_NUMBER_ID>
    <INVOICING_RULE_ID>0</INVOICING_RULE_ID>
    <INVENTORY_ITEM_STATUS_CODE>SERVICE LA</INVENTORY_ITEM_STATUS_CODE>
    <DEFAULT_SO_SOURCE_TYPE>433208</DEFAULT_SO_SOURCE_TYPE>
    <CONTACT_NAME/>
    <ITEM_NUMBER>LABOR-CA</ITEM_NUMBER>
    <LINE_CUSTOMER_TRX_ID>xx</LINE_CUSTOMER_TRX_ID>
    <LINE_CUSTOMER_TRX_LINE_ID>2445028</LINE_CUSTOMER_TRX_LINE_ID>
    <SALES_ORDER_LINE_NUMBER>2</SALES_ORDER_LINE_NUMBER>
    <LINE_CHILD_INDICATOR>0</LINE_CHILD_INDICATOR>
    <LINE_TYPE>LINE</LINE_TYPE>
    <LINE_ITEM_DESCRIPTION>SERVICE LABOR - CA</LINE_ITEM_DESCRIPTION>
    <LINE_QTY_ORDERED>.75</LINE_QTY_ORDERED>
    <LINE_QTY_INVOICED>.75</LINE_QTY_INVOICED>
    <LINE_UOM>HOUR</LINE_UOM>
    <LINE_UNIT_SELLING_PRICE>68</LINE_UNIT_SELLING_PRICE>
    <LINE_EXTENDED_AMOUNT>51</LINE_EXTENDED_AMOUNT>
    <LINE_NET_AMOUNT>51</LINE_NET_AMOUNT>
    <LINE_TAX_RATE/>
    <LINE_VAT_TAX_ID>1245</LINE_VAT_TAX_ID>
    <LINE_TAX_EXEMPTION_ID/>
    <LINE_LOCATION_RATE_ID/>
    <LINK_TO_CUST_TRX_LINE_ID>-1</LINK_TO_CUST_TRX_LINE_ID>
    <LINE_TAX_PRECEDENCE/>
    <LINE_IS_A_CHILD_FLAG>N</LINE_IS_A_CHILD_FLAG>
    <LINE_TAX_INCLUSIVE>N</LINE_TAX_INCLUSIVE>
    <LINE_SALES_ORDER_DATE>04-APR-05</LINE_SALES_ORDER_DATE>
    <LINE_SALES_ORDER>15042116</LINE_SALES_ORDER>
    <LIST_G_TAX_RATE>
    <G_TAX_RATE>
    <LINE_CUSTOMER_TRX_ID1>xx</LINE_CUSTOMER_TRX_ID1>
    <LINK_TO_CUST_TRX_LINE_ID1>2445028</LINK_TO_CUST_TRX_LINE_ID1>
    <LINE_TAX_RATE1>0</LINE_TAX_RATE1>
    </G_TAX_RATE>
    </LIST_G_TAX_RATE>
    <CF_INVOICE_LINE_PRINT_NUMBER>2</CF_INVOICE_LINE_PRINT_NUMBER>
    <C_SER_REQ>43883</C_SER_REQ>
    <C_SHIP_INSTR/>
    <C_SER_REQDATE>10-JAN-05</C_SER_REQDATE>
    <C_PROB_DESC/>
    <C_DISCOUNT>0</C_DISCOUNT>
    <CF_ITEM_DISCOUNT_STRING/>
    <CF_ITEM_DESC_DSP/>
    <C_PRB_RES/>
    <SETLINESPRINTEDFLAG>1</SETLINESPRINTEDFLAG>
    <SET_PRINTED_FLAG/>
    <CF_SERIAL_NUMBER/>
    <D_LINE_UNIT_SELLING_PRICE> 68.00 </D_LINE_UNIT_SELLING_PRICE>
    <CP_LINE_EXTENDED_AMOUNT> 51.00 </CP_LINE_EXTENDED_AMOUNT>
    <CP_DISCOUNT>0</CP_DISCOUNT>
    <LINE_DESCRIPTION>SERVICE LABOR - CA </LINE_DESCRIPTION>
    <LINE_TAXYN/>
    <CP_LINE_ITEM_AMOUNT>68</CP_LINE_ITEM_AMOUNT>
    <LINE_ITEM_AMOUNT>38.25</LINE_ITEM_AMOUNT>
    <LINE_TAX_AMOUNT>0</LINE_TAX_AMOUNT>
    <LINE_FREIGHT_AMOUNT>0</LINE_FREIGHT_AMOUNT>
    <LINE_TAX_INCL_AMOUNT>0</LINE_TAX_INCL_AMOUNT>
    <CF_LINE_ALL_AMOUNT>68</CF_LINE_ALL_AMOUNT>
    </G_LINES>
    </LIST_G_LINES>
    <D_LINE_TOTAL> 38.25 </D_LINE_TOTAL>
    <LINE_TOTAL>38.25</LINE_TOTAL>
    <LINE_CHILDREN_COUNT>0</LINE_CHILDREN_COUNT>
    <MIN_LINK_TO_CUST_TRX_LINE_ID>-1</MIN_LINK_TO_CUST_TRX_LINE_ID>
    <MIN_LINE_TYPE>LINE</MIN_LINE_TYPE>
    <CS_LINE_ALL_TOTAL>68</CS_LINE_ALL_TOTAL>
    </G_LINE_TOTAL>
    </LIST_G_LINE_TOTAL>
    <LIST_G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451402</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451403</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451404</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451406</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451407</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451408</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2445028</TRX_LINE_ID>
    <INV_TAX_TYPE>LINE</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Line</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION>SERVICE LABOR - CA</INV_TAX_LINE_DESCRIPTION>
    <INV_TAX_EXTENDED_AMOUNT>51</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>Sabrix</INV_TAX_CODE_NAME>
    <INV_TAX_RATE/>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT/>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 51.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>51</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Line</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2445027</TRX_LINE_ID>
    <INV_TAX_TYPE>LINE</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Line</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION>TRAVEL LABOR - CA</INV_TAX_LINE_DESCRIPTION>
    <INV_TAX_EXTENDED_AMOUNT>34</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>Sabrix</INV_TAX_CODE_NAME>
    <INV_TAX_RATE/>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT/>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 34.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>34</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Line</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451401</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>US Tax</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax US Tax @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451405</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>US Tax</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax US Tax @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    </LIST_G_SUMMARY_INV>
    <LIST_G_SHIP_CUSTOMER>
    <G_SHIP_CUSTOMER>
    <SHIP_CUST_NAME>xx</SHIP_CUST_NAME>
    <SHIP_ADDRESS1>xx</SHIP_ADDRESS1>
    <SHIP_ADDRESS2/>
    <SHIP_ADDRESS3/>
    <SHIP_ADDRESS4/>
    <SHIP_CITY>VAN NUYS</SHIP_CITY>
    <SHIP_STATE>CA</SHIP_STATE>
    <SHIP_POSTAL_CODE>91405</SHIP_POSTAL_CODE>
    <SHIP_COUNTRY>US</SHIP_COUNTRY>
    <SHIP_SITE_ID>xx</SHIP_SITE_ID>
    <SHIP_CUSTOMER_ID>xx</SHIP_CUSTOMER_ID>
    <SHIP_SITE_TAX_REFERENCE/>
    <SHIP_CUST_TAX_REFERENCE/>
    <SHIP_TO_STATE>CA</SHIP_TO_STATE>
    <SHIP_TO_PROVINCE/>
    <SHIP_COUNTRY_DESCRIPTION>United States</SHIP_COUNTRY_DESCRIPTION>
    <SHIP_TRX_TAX_REFERENCE/>
    <C_SHIP_TO_CONCATENATED>xx
    United States</C_SHIP_TO_CONCATENATED>
    </G_SHIP_CUSTOMER>
    </LIST_G_SHIP_CUSTOMER>
    <LIST_G_REMIT_CUSTOMER>
    <G_REMIT_CUSTOMER>
    <REMIT_PROVINCE/>
    <REMIT_ADDRESS1>DRESSER, INC - xx</REMIT_ADDRESS1>
    <REMIT_ADDRESS2>FED TAX NO: xx</REMIT_ADDRESS2>
    <REMIT_ADDRESS3>PO BOX xxx</REMIT_ADDRESS3>
    <REMIT_ADDRESS4/>
    <REMIT_CITY>DALLAS</REMIT_CITY>
    <REMIT_STATE>TX</REMIT_STATE>
    <REMIT_POSTAL_CODE>75320-1266</REMIT_POSTAL_CODE>
    <REMIT_COUNTRY>US</REMIT_COUNTRY>
    <REMIT_ADDRESS_ID>1210</REMIT_ADDRESS_ID>
    <REMIT_COUNTRY_DESCRIPTION>United States</REMIT_COUNTRY_DESCRIPTION>
    <CF_ADDR>DRESSER, INC - xxx
    United States</CF_ADDR>
    <C_REMIT_TO_CONCATENATED>DRESSER, INC - xxx
    United States</C_REMIT_TO_CONCATENATED>
    <CF_SPECIAL_NOTE>Billing Inquiries: DRESSER, INC - xxx </CF_SPECIAL_NOTE>
    </G_REMIT_CUSTOMER>
    </LIST_G_REMIT_CUSTOMER>
    <LIST_G_ADJUSTMENT>
    </LIST_G_ADJUSTMENT>
    <C_CONTRACT_NAME/>
    <CF_ADDR_STRING>xxx;</CF_ADDR_STRING>
    <CF_FOB>O</CF_FOB>
    <CF_SHIPPING_INSTRUCTION/>
    <SHIP_VIA_DESCRIPTION>SHIPPING TO DECIDE</SHIP_VIA_DESCRIPTION>
    <CF_WORK_REQUIRED>Q3-L4</CF_WORK_REQUIRED>
    <CP_PROBLEM_SPL_INSTN>Problem - Q3-L4
    Resolution - </CP_PROBLEM_SPL_INSTN>
    <CP_SERV_REQDATE/>
    <CF_TRACKING_NUMBER> </CF_TRACKING_NUMBER>
    <CF_RESET_INVOICE_NUMBERING>0</CF_RESET_INVOICE_NUMBERING>
    <D_INV_TAX_AMOUNT> 0.00 </D_INV_TAX_AMOUNT>
    <CF_DELIVERY_ADDRESS/>
    <LINE_COUNT>2</LINE_COUNT>
    <D_INV_ITEM_AMOUNT> 136.00 </D_INV_ITEM_AMOUNT>
    <TERM_RELATIVE_ROUNDED>100</TERM_RELATIVE_ROUNDED>
    <INV_SALES_ORDER_COUNT>1</INV_SALES_ORDER_COUNT>
    <INV_ITEM_AMOUNT>136</INV_ITEM_AMOUNT>
    <D_INV_FREIGHT_AMOUNT> 0.00 </D_INV_FREIGHT_AMOUNT>
    <INV_FREIGHT_AMOUNT>0</INV_FREIGHT_AMOUNT>
    <INV_TAX_AMOUNT>0</INV_TAX_AMOUNT>
    <D_INV_ALL_AMOUNT> 136.00 </D_INV_ALL_AMOUNT>
    <INV_SALES_ORDER>15042116</INV_SALES_ORDER>
    <INV_ALL_AMOUNT>136</INV_ALL_AMOUNT>
    <TERM_TAX_COUNT>10</TERM_TAX_COUNT>
    <INV_TAX_COUNT>10</INV_TAX_COUNT>
    <TERM_ITEM_AMOUNT>85</TERM_ITEM_AMOUNT>
    <TERM_TAX_AMOUNT>0</TERM_TAX_AMOUNT>
    <TERM_FREIGHT_AMOUNT>0</TERM_FREIGHT_AMOUNT>
    <SUM_LINE_TAX_INCL_AMOUNT>0</SUM_LINE_TAX_INCL_AMOUNT>
    <SUM_LINE_TAX_AMOUNT>0</SUM_LINE_TAX_AMOUNT>
    <TERM_ALL_AMOUNT>85</TERM_ALL_AMOUNT>
    </G_INV_TERM>
    </LIST_G_INV_TERM>
    <LIST_G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    </LIST_G_TEMP>
    <LIST_G_COMMITMENT_ADJUSTMENT>
    <G_COMMITMENT_ADJUSTMENT>
    <COMMIT_THIS_INVOICE/>
    <D_COMMIT_THIS_INVOICE> </D_COMMIT_THIS_INVOICE>
    <D_COMMIT_ACTIVITY> 0.00 </D_COMMIT_ACTIVITY>
    </G_COMMITMENT_ADJUSTMENT>
    </LIST_G_COMMITMENT_ADJUSTMENT>
    <C_TRX_TYPE>INVOICE</C_TRX_TYPE>
    <CF_TAX_CITY>1</CF_TAX_CITY>
    <CP_TCITY> 0.00 </CP_TCITY>
    <CF_TAX_STATE>1</CF_TAX_STATE>
    <CP_TSTATE> 0.00 </CP_TSTATE>
    <CF_TAX_COUNTY>1</CF_TAX_COUNTY>
    <CP_TCOUNTY> 0.00 </CP_TCOUNTY>
    <CF_TAX_LOCAL>1</CF_TAX_LOCAL>
    <CP_TLOCAL> 0.00 </CP_TLOCAL>
    <CF_PHONE_NUMBER>909-xxx-xxxx</CF_PHONE_NUMBER>
    <C_TRX_DISPLAY/>
    <C_SHIP>WAS</C_SHIP>
    <CF_IF_SALES_ORDER_EXISTS>1</CF_IF_SALES_ORDER_EXISTS>
    <CF_NO>ABC</CF_NO>
    <GET_CONTACT_INFO>Y</GET_CONTACT_INFO>
    <SALESREP_NAME>WSG - NJ</SALESREP_NAME>
    <BILL_TO_FNAME/>
    <CF_CTRL_STRING>{PRN:noprint CPY:1} </CF_CTRL_STRING>
    <BILL_TO_LNAME/>
    <BILL_TO_MAIL_STOP/>
    <BILL_TO_ATTN/>
    <SHIP_TO_FNAME/>
    <SHIP_TO_LNAME/>
    <SHIP_TO_ATTN/>
    <SHIP_TO_MAIL_STOP/>
    <TAX_PRINTING_OPTION>ITEMIZE AND SUM</TAX_PRINTING_OPTION>
    <TAX_GROUP_BY>,v.tax_code</TAX_GROUP_BY>
    <TAX_ORDER_BY>v.tax_code,</TAX_ORDER_BY>
    <TAX_SUMMARY>Y</TAX_SUMMARY>
    <TAX_DETAIL>Y</TAX_DETAIL>
    <TAX_RECAP>N</TAX_RECAP>
    <FREIGHT_DETAIL>Y</FREIGHT_DETAIL>
    <COMMIT_BOX_FLAG>N</COMMIT_BOX_FLAG>
    <COMMIT_TRX_NUMBER/>
    <COMMIT_PARENT_TYPE/>
    <COMMIT_PARENT_TYPE_NAME/>
    <COMMIT_ORIGINAL_AMT/>
    <COMMIT_TOTAL_ACTIVITY/>
    <COMMIT_AMT_UNINVOICED/>
    <COMMIT_START_DATE/>
    <COMMIT_END_DATE/>
    <REMIT_TO_CONTROL_ID>1210</REMIT_TO_CONTROL_ID>
    <PREVIOUS_TYPE_NAME/>
    <PREVIOUS_TRX_NUMBER/>
    <TERM_COUNT>1</TERM_COUNT>
    <TERM_MAX_VALUE>1</TERM_MAX_VALUE>
    <D_COMMIT_BALANCE> </D_COMMIT_BALANCE>
    <D_COMMIT_AMOUNT> </D_COMMIT_AMOUNT>
    <D_COMMIT_AMT_UNINVOICED> </D_COMMIT_AMT_UNINVOICED>
    <BILL_COUNTRY_DESCRIPTION>United States</BILL_COUNTRY_DESCRIPTION>
    <TRX_TAX_REFERENCE/>
    <C_BILL_TO_CONCATENATED>Attn: Accounts Payable
    XXX COMPANY - NA MARKETING
    PO BOX Q, SECTION XX
    XX
    CONCORD CA 94524-XXXX
    United States</C_BILL_TO_CONCATENATED>
    </G_INVOICE>
    </LIST_G_INVOICE>
    </G_ORDER_BY>
    </LIST_G_ORDER_BY>
    <LIST_G_REPEAT_HEADER>
    <G_REPEAT_HEADER>
    <ROWNUM>1</ROWNUM>
    </G_REPEAT_HEADER>
    </LIST_G_REPEAT_HEADER>
    <MSG_PRECEDENCE>Precedence:</MSG_PRECEDENCE>
    <SPECIAL_INSTRUCTIONS/>
    <MSG_SALES_TAX>Sales Tax @ &amp;TAX_RATE</MSG_SALES_TAX>
    <MSG_VAT_TAX>Tax &amp;TAX_CODE &amp;EURO_TAXABLE_AMOUNT@ &amp;TAX_RATE</MSG_VAT_TAX>
    <REPORT_ALL_AMOUNT>85</REPORT_ALL_AMOUNT>
    <REPORT_ITEM_AMOUNT>85</REPORT_ITEM_AMOUNT>
    <REPORT_TAX_AMOUNT>0</REPORT_TAX_AMOUNT>
    <REPORT_FREIGHT_AMOUNT>0</REPORT_FREIGHT_AMOUNT>
    <REPORT_TERM_COUNT>1</REPORT_TERM_COUNT>
    <PAGE_ITEM_RUNNING_TOTAL>136</PAGE_ITEM_RUNNING_TOTAL>
    <PAGE_FREIGHT_RUNNING_TOTAL>0</PAGE_FREIGHT_RUNNING_TOTAL>
    <PAGE_TAX_RUNNING_TOTAL>0</PAGE_TAX_RUNNING_TOTAL>
    <PAGE_ALL_RUNNING_TOTAL>136</PAGE_ALL_RUNNING_TOTAL>
    <PAGE_CURRENCY_CODE>USD</PAGE_CURRENCY_CODE>
    <DISP_ITEM_RUNNING_TOTAL/>
    <PAGE_TERM_ITEM_AMOUNT>85</PAGE_TERM_ITEM_AMOUNT>
    <INVOICE_LINES_PRINTED_FLAG>N</INVOICE_LINES_PRINTED_FLAG>
    <PAGE_TERM_TAX_AMOUNT>0</PAGE_TERM_TAX_AMOUNT>
    <PAGE_TERM_FREIGHT_AMOUNT>0</PAGE_TERM_FREIGHT_AMOUNT>
    <PAGE_TERM_ALL_AMOUNT>85</PAGE_TERM_ALL_AMOUNT>
    <PAGE_END_OF_INVOICE>Y</PAGE_END_OF_INVOICE>
    <PAGE_ADJ_LINE_AMOUNT/>
    <PAGE_ADJ_TAX_AMOUNT/>
    <PAGE_ADJ_FREIGHT_AMOUNT/>
    <PAGE_ADJ_ALL_AMOUNT/>
    <PAGE_ADJ_COMMENTS/>
    <PAGE_TRX_TYPE>INV</PAGE_TRX_TYPE>
    <REPORT_INV_COUNT>1</REPORT_INV_COUNT>
    <PRODUCT_INSTALLED_SO>N</PRODUCT_INSTALLED_SO>
    <REPORT_ADJ_ALL_AMOUNT>85</REPORT_ADJ_ALL_AMOUNT>
    <D_PAGE_TERM_ITEM_AMOUNT/>
    <D_PAGE_TERM_TAX_AMOUNT/>
    <D_PAGE_TERM_FREIGHT_AMOUNT/>
    <D_PAGE_TERM_ALL_AMOUNT/>
    <D_PAGE_ADJ_LINE_AMOUNT/>
    <D_PAGE_ADJ_TAX_AMOUNT/>
    <D_PAGE_ADJ_FREIGHT_AMOUNT/>
    <D_PAGE_ADJ_ALL_AMOUNT/>
    <C_EC_WHERE_CLAUSE>AND NOT EXISTS
              (SELECT 'X'
              from ECE_TP_DETAILS ETD,
              ECE_TP_HEADERS ETH
              WHERE ETH.TP_HEADER_ID = A_BILL.TP_HEADER_ID
              AND ETD.TP_HEADER_ID = ETH.TP_HEADER_ID
              AND ETD.EDI_FLAG = 'Y'
              AND ETD.DOCUMENT_ID = 'INO'
              AND ETD.DOCUMENT_TYPE =
                   DECODE (TYPES.TYPE, 'CM',
                   DECODE(A.PREVIOUS_CUSTOMER_TRX_ID,
                        NULL,'OACM',
                        'CM'),
                   TYPES.TYPE)
         </C_EC_WHERE_CLAUSE>
    <RP_ERROR>ERROR</RP_ERROR>
    <C_DESCRIPTION/>
    <C_TAX_SUMMARY_NAME/>
    <C_CREDIT_MEMO/>
    <C_CONFIRMATION1/>
    <C_CONFIRMATION2/>
    <C_NUM_ADJUST/>
    <C_DATE/>
    <C_TAX_SUMMARY_CODE/>
    <PAGE_SUM_TAX_AMOUNT>0</PAGE_SUM_TAX_AMOUNT>
    <PAGE_SUM_TAX_INCL_AMOUNT>0</PAGE_SUM_TAX_INCL_AMOUNT>
    <C_PRB_BRIEF_DESC/>
    <CP_SID>SID:NAOADEV3</CP_SID>
    </DWDRAXINV>
    Here's the error:
    XML Publisher: Version : 11.5.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    XDOBURSTREP module: XML Publisher Report Bursting Program
    Current system time is 24-JAN-2008 14:45:31
    XML/BI Publisher Version : 5.6.3
    Request ID: 12167213
    All Parameters: ReportRequestID=12167133:DebugFlag=Y
    Report Req ID: 12167133
    Debug Flag: Y
    Updating request description
    Updated description
    Retrieving XML request information
    Node Name:DFW111SSUN012
    Preparing parameters
    null output =/naoadev1/app/comn/admin/out/naoadev1_dfw111ssun012/o12167213.out
    inputfilename =/naoadev1/app/comn/admin/out/naoadev1_dfw111ssun012/o12167133.out
    Data XML File:/naoadev1/app/comn/admin/out/naoadev1_dfw111ssun012/o12167133.out
    Set Bursting parameters..
    Temp. Directory:/naoadev1/app/appl/dres/11.5.0/xml
    [012408_024539888][][STATEMENT] Oracle XML Parser version ::: Oracle XDK Java 9.0.4.0.0 Production
    Start bursting process..
    [012408_024539899][][STATEMENT] /naoadev1/app/appl/dres/11.5.0/xml
    [012408_024539984][][EXCEPTION] oracle.xml.parser.v2.XMLParseException: Expected '-->' instead of 'EOF'.
         at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:205)
         at oracle.xml.parser.v2.XMLReader.scanComment(XMLReader.java:1087)
         at oracle.xml.parser.v2.NonValidatingParser.parseComment(NonValidatingParser.java:368)
         at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1222)
         at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:301)
         at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:268)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:227)
         at oracle.apps.xdo.common.config.ConfigReader.read(ConfigReader.java:437)
         at oracle.apps.xdo.common.config.ConfigReader.read(ConfigReader.java:416)
         at oracle.apps.xdo.batch.bursting.FileHandler.setTempDir(FileHandler.java:272)
         at oracle.apps.xdo.batch.bursting.FileHandler.<init>(FileHandler.java:41)
         at oracle.apps.xdo.batch.BurstingProcessorEngine.setTempDir(BurstingProcessorEngine.java:774)
         at oracle.apps.xdo.batch.BurstingProcessorEngine.process(BurstingProcessorEngine.java:891)
         at oracle.apps.xdo.oa.cp.JCP4XDOBurstingEngine.runProgram(JCP4XDOBurstingEngine.java:269)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:161)
    Followed many lines later by this error:
    [012408_024546649][oracle.apps.xdo.batch.bursting.ProcessCoreDocument][EXCEPTION] java.io.FileNotFoundException: -- I used my own path
    /xdoehgHGavj1O012408_0245466440.fo (No such file or directory)
         at java.io.FileOutputStream.open(Native Method)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
    which I assume is simply a consequence of the earlier step failing...
    Here's the control file for the bursting program, based on the demo:
    <?xml version="1.0" encoding="UTF-8"?>
    <xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi" type="bursting">
    <xapi:request select="/DWDRAXINV/LIST_G_ORDER_BY/G_ORDER_BY/LIST_G_INVOICE/G_INVOICE">
    <xapi:delivery>
    <xapi:email id="123" server="ads119sexch1.corp.dresser.com" port="25" from="[email protected]" reply-to ="[email protected]">
    <xapi:message id="123" to="[email protected]" attachment="true" subject="Your Invoice #${TRX_NUMBER} ${BILL_CUST_NAME}">Dear Sir/Madam,
    Please find attached your invoice #${TRX_NUMBER} for ${BILL_CUST_NAME} dated ${TRX_DATE}
    Your payment terms for this invoice are ${G_INV_TERM[1]/TERM_NAME}.
    Please pay on time.
    Regards
    Oracle</xapi:message>
    </xapi:email>
    </xapi:delivery>
    <xapi:document output-type="pdf" delivery="123">
    <xapi:template type="rtf"
    location="/naoadev3/app/appl/dres/11.5.0/xml/DRESRTSRAXINV.rtf" >
    </xapi:template>
    </xapi:document>
    </xapi:request>
    </xapi:requestset>
    This part seems fine - the email goes out, but the expected PDF attachment of the invoice is not there, presumably because it wasn't generated.
    Thanks for making it to the bottom of this!!!
    Any suggestions?
    Thanks,
    Eric Safern
    Dresser, Inc.

    Hello,
    I'm working on the similar requirement. same bursting the program based on the TRX_NUMBER. Does the bursting happens?
    Thanks
    Geetha

  • Java Web Start Error - java.io.IOException: EOF reading band

    I am using Java Web Start to download an application and I am getting the following error. How do I resolve this? The jar that is being downloaded is present in the directory.
    java.io.IOException: EOF reading band
         at com.sun.java.util.jar.pack.NativeUnpack.start(Native Method)
         at com.sun.java.util.jar.pack.NativeUnpack.run(Unknown Source)
         at com.sun.java.util.jar.pack.NativeUnpack.run(Unknown Source)
         at com.sun.java.util.jar.pack.UnpackerImpl.unpack(Unknown Source)
         at com.sun.deploy.net.HttpDownloadHelper.download(Unknown Source)
         at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
         at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
         at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
         at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
         at com.sun.javaws.Launcher.downloadResources(Unknown Source)
         at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
         at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
         at com.sun.javaws.Launcher.launch(Unknown Source)
         at com.sun.javaws.Main.launchApp(Unknown Source)
         at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
         at com.sun.javaws.Main$1.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)

    jfdenise wrote:
    Hi,
    I am facing the exact same issue when getting a big jar of more than 7 megs. It seems to occur in some special network configuration that I am not yet able to figure out. It is obviously linked to the fact that the jar is unpacked on the client side.
    Anybody ran into this one and understood the root cause?Please, don't resurrect old threads, and don't use signatures with addresses. I'm locking this thread.
    Kaj

  • Problems with moving files to ora directory UTL_FILE.PUT_RAW - ORA-29285

    hi,
    i'm using apex 4.1
    i have a procedure which moves my file from apex_application_files to ORA directory.
    if i choose a text file or small word document which is 1kb, it works. but if i have pdf file (85kb) or word document (16kb) it gives me ORA-29285: file write error
    what's my problem?
    PROCEDURE put_file_to_server (p_filename IN VARCHAR2,p_cert_type IN VARCHAR2,p_cert_pk IN NUMBER)
    AS
    l_file UTL_FILE.file_type;
    l_blob_len INTEGER;
    l_pos INTEGER := 1;
    l_amount BINARY_INTEGER := 32767;
    l_buffer RAW (32767);
    v_new_filename VARCHAR2(100);
    v_bfile BFILE ;
    BEGIN
    -- delete from apex_application_files;
    --Neuen Dateinamen generieren
    v_new_filename := p_cert_type||'_'||p_cert_pk;
    v_bfile := BFILENAME (v_directory, v_new_filename);
    --Datei erstellen
    l_file := UTL_FILE.fopen(v_directory,v_new_filename,'w');
    IF DBMS_LOB.FILEEXISTS (v_bfile) = 1 THEN
    cert_log_pkg.m(p_module => 'CERT_FILE_PKG.PUT_FILE_TO_SERVER',p_msg => 'File exists');
    FOR rec IN (select blob_content lblob from apex_application_files where rownum = 1)
    LOOP
    l_blob_len := DBMS_LOB.getlength(rec.lblob);
    cert_log_pkg.m(p_module => 'CERT_FILE_PKG.PUT_FILE_TO_SERVER',p_msg => 'Filesize is '||l_blob_len);
    WHILE l_pos < l_blob_len LOOP
    DBMS_LOB.read (rec.lblob, l_amount, l_pos, l_buffer);
    UTL_FILE.put_raw (l_file, l_buffer, FALSE);
    l_pos := l_pos + l_amount;
    END LOOP;
    COMMIT;
    END LOOP;
    --Datei schließen
    UTL_FILE.fclose(l_file);
    else
    cert_log_pkg.m(p_module => 'CERT_FILE_PKG.PUT_FILE_TO_SERVER',p_msg => 'Datei doesn't exist');
    end if;
    EXCEPTION
    WHEN OTHERS
    THEN
    -- Close the file if something goes wrong.
    IF UTL_FILE.is_open (l_file) THEN
    UTL_FILE.fclose (l_file);
    END IF;
    delete from apex_application_files;
    RAISE;
    delete from apex_application_files;
    END put_file_to_server;

    Sorry but din't test this...Can you give it a try and see if this works?
    PROCEDURE put_file_to_server(
        p_filename  IN VARCHAR2,
        p_cert_type IN VARCHAR2,
        p_cert_pk   IN NUMBER)
    AS
      l_file UTL_FILE.file_type;
      l_blob_len INTEGER;
      l_pos      INTEGER      := 1;
      l_amount BINARY_INTEGER := 32767;
      l_buffer RAW (32767);
      v_new_filename VARCHAR2(100);
      v_bfile BFILE ;
      vblob BLOB;
      vstart NUMBER := 1;
      my_vr RAW(32000);
      bytelen NUMBER := 32000;
      LEN     NUMBER;
    BEGIN
      -- delete from apex_application_files;
      --Neuen Dateinamen generieren
      v_new_filename := p_cert_type||'_'||p_cert_pk;
      v_bfile        := BFILENAME (v_directory, v_new_filename);
      --Datei erstellen
      --l_file                          := UTL_FILE.fopen(v_directory,v_new_filename,'w');
      l_file                          := UTL_FILE.fopen(v_directory,v_new_filename, 'WB', 32760);
      IF DBMS_LOB.FILEEXISTS (v_bfile) = 1 THEN
        cert_log_pkg.m(p_module => 'CERT_FILE_PKG.PUT_FILE_TO_SERVER',p_msg => 'File exists');
        FOR rec IN
        (SELECT blob_content lblob,
          LENGTH(blob_content) LEN
        FROM apex_application_files
        WHERE rownum = 1
        LOOP
          cert_log_pkg.m(p_module => 'CERT_FILE_PKG.PUT_FILE_TO_SERVER',p_msg => 'Filesize is '|| LEN);
          IF LEN < 32760 THEN
            utl_file.put_raw(l_file,lblob);
            utl_file.fflush(l_file);
          ELSE -- write in pieces
            vstart      := 1;
            WHILE vstart < LEN
            LOOP
              dbms_lob.read(vblob,bytelen,vstart,my_vr);
              utl_file.put_raw(l_file,my_vr);
              utl_file.fflush(l_file);
              -- set the start position for the next cut
              vstart := vstart + bytelen;
              -- set the end position if less than 32000 bytes
              x         := x - bytelen;
              IF x       < 32000 THEN
                bytelen := x;
              END IF;
            END LOOP;
          END IF;
         END LOOP;
        ELSE
          cert_log_pkg.m(p_module => 'CERT_FILE_PKG.PUT_FILE_TO_SERVER',p_msg => 'Datei doesnt exist');
        END IF;
        utl_file.fclose(l_file);
      EXCEPTION
      WHEN OTHERS THEN
        -- Close the file if something goes wrong.
        IF UTL_FILE.is_open (l_file) THEN
          UTL_FILE.fclose (l_file);
        END IF;
        DELETE FROM apex_application_files;
        RAISE;
        DELETE FROM apex_application_files;
      END put_file_to_server;Edited by: Vitor Rodrigues on 17/Fev/2012 12:03

  • (ORA-06508: PL/SQL: could not find program unit being called) utl_file

    hi all,
    I am using Oracle XE and forms 6i and am facing the above error when i try to use the utl_file utility.
    WHEN BUTTOn PRESSED
         IF (:EXPORT_IMPORT_DATA = 'E') THEN
              message(lc_status);
                             SECURITY.PKG_gen_trnsfr_data_flat_file.PROC_gen_trnsfr_data_flat_file(:DATA_FILE_PATH, :DATA_FILE_NAME, lc_status);
    PKG_GEN_TRNSFR_DATA_FLAT_FILE body
    create or replace PACKAGE BODY PKG_gen_trnsfr_data_flat_file IS
    PROCEDURE proc_gen_trnsfr_data_flat_file(p_file_location IN VARCHAR2, p_file_name IN VARCHAR2, po_status OUT VARCHAR2) IS
         lh_filename UTL_FILE.FILE_TYPE;
         ls_data VARCHAR2(2000);
         ln_count NUMBER;
         lc_error VARCHAR2(10000);
    CURSOR cur_FPM_DAMAGE_COMPENSATION IS SELECT RPAD(nvl(PDCO_CASE_CLASS,' '),1) || RPAD(nvl(PDCO_CASE_DISPOSAL_PENDING,' '),1) || RPAD(nvl(PDCO_CASE_DISPOSAL_TYPE,' '),1) || RPAD(nvl(PDCO_CC_NO,0),9) || RPAD(nvl(PDCO_CF_NO,0),9) || RPAD(nvl(PDCO_COMPEN_REALISED,0),18) || RPAD(nvl(PDCO_CONFISCATED_PRODUCE,' '),25) || RPAD(nvl(PDCO_CR_NO,0),9) || RPAD(nvl(PDCO_DAMAGE_DETAILS,' '),90) || RPAD(nvl(PDCO_DAMAGE_REPORT_NO,0),13) || RPAD(NVL(TO_CHAR(PDCO_DATE_ORDER_COMPOUNDING,'DD-MON-RRRR'),' '),15) || RPAD(NVL(TO_CHAR(PDCO_DATE_PROSECUTION,'DD-MON-RRRR'),' '),15) || RPAD(NVL(TO_CHAR(PDCO_DISPOSAL_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PDCO_DR_NO,0),9) || RPAD(nvl(PDCO_FOREST_NAME,' '),50) || RPAD(NVL(TO_CHAR(PDCO_ISSUE_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PDCO_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PDCO_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PDCO_NO_OF_PERSONS_IN_THE_CASE,0),6) || RPAD(nvl(PDCO_NO_ORDER_FOR_COMPOUNDING,' '),15) || RPAD(nvl(PDCO_OFFENCE_DETAILS,' '),90) || RPAD(nvl(PDCO_OFFENCE_TYPE,' '),1) || RPAD(nvl(PDCO_OFFENDER_ADDRESS,' '),90) || RPAD(nvl(PDCO_OFFENDER_NAME,' '),200) ||
    RPAD(nvl(PDCO_OFFICIAL_NAME,' '),30) || RPAD(nvl(PDCO_RA_SIGN,' '),30) || RPAD(NVL(TO_CHAR(PDCO_RA_SIGN_DATE,'DD-MON-RRRR'),' '),15) || RPAD(NVL(TO_CHAR(PDCO_RECEIPT_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PDCO_RR_NO,0),18) || RPAD(nvl(PDCO_TOOLS,0),18) || RPAD(nvl(PDCO_TOTAL,0),18) || RPAD(nvl(PDCO_VALUE_CONFISCATED_PROD,0),18) || RPAD(nvl(PDCO_VFP,0),18) || RPAD(nvl(PDCO_YDIV_DIVISION_CODE,' '),8) || RPAD(nvl(PDCO_YRAN_RANGE_CODE,' '),8) outstring FROM FPM_DAMAGE_COMPENSATION;
    CURSOR cur_FPM_DAMAGE_COMPENSATION_R IS SELECT RPAD(nvl(CIRCLE,' '),90) || RPAD(nvl(DIVISION,' '),90) || RPAD(nvl(PREV_A,0),9) || RPAD(nvl(PREV_B,0),9) || RPAD(nvl(PREV_TOTAL,0),11) || RPAD(nvl(TOT_A,0),11) || RPAD(nvl(TOT_B,0),11) || RPAD(nvl(TOT_C,0),11) || RPAD(nvl(T_A,0),9) || RPAD(nvl(T_B,0),9) || RPAD(nvl(T_C,0),9) || RPAD(nvl(X_A,0),9) || RPAD(nvl(X_B,0),9) || RPAD(nvl(X_C,0),9) || RPAD(nvl(Y_A,0),9) || RPAD(nvl(Y_B,0),9) || RPAD(nvl(Y_C,0),9) || RPAD(nvl(Z_A,0),9) || RPAD(nvl(Z_B,0),9) || RPAD(nvl(Z_C,0),9) outstring FROM fpm.FPM_DAMAGE_COMPENSATION_R;
    CURSOR cur_FPM_ENCROACHMENT IS SELECT RPAD(nvl(PENC_AREA_UNDER_ENCROACH,0),18) || RPAD(nvl(PENC_BALANCE_AREA_UN_ENC,0),18) || RPAD(nvl(PENC_ENCROACH_ID,' '),8) || RPAD(nvl(PENC_FOREST_NAME,' '),50) || RPAD(nvl(PENC_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PENC_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PENC_LEGAL_STATUS_OF_FOREST,' '),90) || RPAD(NVL(TO_CHAR(PENC_PERIOD_FROM_UNDER_ENC,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PENC_PRESENT_STATUS,' '),90) || RPAD(nvl(PENC_YDIV_DIVISION_CODE,' '),8) outstring FROM FPM_ENCROACHMENT;
    CURSOR cur_FPM_ENCROACHMENT_REMOVALS IS SELECT RPAD(nvl(PENR_ACTION_TAKEN,' '),90) || RPAD(nvl(PENR_AREA_REMOVED_ENCMNT,0),18) || RPAD(NVL(TO_CHAR(PENR_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PENR_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PENR_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PENR_PENC_ENCROACHMENT_ID,' '),8) || RPAD(nvl(PENR_PENC_YDIV_DIVISION_CODE,' '),8) outstring FROM FPM_ENCROACHMENT_REMOVALS;
    CURSOR cur_FPM_FIRE IS SELECT RPAD(nvl(PFIR_ACTION_TAKEN,' '),90) || RPAD(nvl(PFIR_AREA_EFFECTED,0),18) || RPAD(nvl(PFIR_CAUSE_OF_FIRE,' '),2) || RPAD(nvl(REPLACE(REPLACE(PFIR_DAMAGE_DETAILS,CHR(13),' '),CHR(10),' '),' '),200) || RPAD(nvl(PFIR_DAMAGE_VALUE,0),18) || RPAD(NVL(TO_CHAR(PFIR_DATE_OF_FIRE,'DD-MON-RRRR'),' '),15) || RPAD(NVL(TO_CHAR(PFIR_DATE_VISIT_DFO,'DD-MON-RRRR'),' '),15) || RPAD(NVL(TO_CHAR(PFIR_DATE_VISIT_RANGEOFFICER,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PFIR_DFO_COMMENTS,' '),90) || RPAD(nvl(PFIR_DFO_SIGN,' '),30) || RPAD(NVL(TO_CHAR(PFIR_DFO_SIGN_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PFIR_FIRE_NO,' '),10) || RPAD(nvl(PFIR_FOREST_NAME,' '),50) || RPAD(nvl(PFIR_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PFIR_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PFIR_NO_OF_TREES,0),18) || RPAD(nvl(PFIR_QTY_OTH_FORST_PROD_BRNT,0),18) || RPAD(nvl(PFIR_RANGEOFFICER_COMMENTS,' '),90) || RPAD(nvl(PFIR_REPORTING_PERSON,' '),30) || RPAD(nvl(PFIR_VALUE_OTH_FORST_PROD_BRNT,0),18) || RPAD(nvl(PFIR_VALUE_TREES_BURNT,0),18) || RPAD(nvl(PFIR_VOLUME_TREES_BURNT,0),18) || RPAD(nvl(PFIR_YDIV_DIVISION_CODE,' '),8) || RPAD(nvl(PFIR_YRAN_RANGE_CODE,' '),8) outstring FROM FPM_FIRE;
    CURSOR cur_FPM_JFM_MASTER IS SELECT RPAD(nvl(PJFM_BSCM_SCHEME_CODE,' '),8) || RPAD(nvl(PJFM_JFM_ID,0),13) || RPAD(nvl(PJFM_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PJFM_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(NVL(TO_CHAR(PJFM_LAUNCH_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PJFM_LOCATION,' '),20) || RPAD(nvl(PJFM_YDIV_DIVISION_CODE,' '),8) outstring FROM FPM_JFM_MASTER;
    CURSOR cur_FPM_JFM_DETAILS IS SELECT RPAD(NVL(TO_CHAR(PJFD_DATE,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PJFD_EXPENDITURE,0),18) || RPAD(nvl(PJFD_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PJFD_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PJFD_NO_OF_FPS,0),13) || RPAD(nvl(PJFD_OTHER_AREA_INCLUDED,0),18) || RPAD(nvl(PJFD_OVERALL_AREA_REGENERATED,0),18) || RPAD(nvl(PJFD_PF_AREA_INCLUDED,0),18) || RPAD(nvl(PJFD_PJFM_JFM_ID,0),13) || RPAD(nvl(PJFD_RF_AREA_INCLUDED,0),18) || RPAD(nvl(PJFD_VALUE_BENEFIT_CASH,0),18) || RPAD(nvl(PJFD_VALUE_BENEFIT_GOODS,0),18) outstring FROM FPM_JFM_DETAILS;
    CURSOR cur_FPM_PROTECTION_FIRE_MASTER IS SELECT RPAD(nvl(PPFM_AREA_ATTEM_TO_BE_PROT,0),18) || RPAD(nvl(PPFM_FINANCIAL_YEAR,' '),9) || RPAD(nvl(PPFM_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PPFM_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PPFM_YDIV_DIVISION_CODE,' '),8) outstring FROM FPM_PROTECTION_FIRE_MASTER;
    CURSOR cur_FPM_PROTECTION_FIRE_DET IS SELECT RPAD(nvl(PPFD_AREA_ACTUALLY_PROTECTED,0),18) || RPAD(nvl(PPFD_COST,0),18) || RPAD(nvl(PPFD_FAILURE,0),18) || RPAD(nvl(PPFD_LASTUPDATE_BY,' '),30) || RPAD(NVL(TO_CHAR(PPFD_LASTUPDATE_ON,'DD-MON-RRRR'),' '),15) || RPAD(nvl(PPFD_PPFM_FINANCIAL_YEAR,' '),9) || RPAD(nvl(PPFD_PPFM_YDIV_DIVISIN_CODE,' '),8) outstring FROM FPM_PROTECTION_FIRE_DETAILS;
    BEGIN
    lc_error := 'begin';
    lc_error := p_file_location || p_file_name ;
         lh_filename := UTL_FILE.FOPEN(p_file_location, p_file_name, 'w',32767);
    lc_error := 'filename';
         SELECT COUNT(*) INTO ln_count FROM FPM_DAMAGE_COMPENSATION;
         lc_error := 'line 1';
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10) || 'FPM_DAMAGE_COMPENSATION');
         lc_error := 'line2';
         FOR i IN cur_FPM_DAMAGE_COMPENSATION LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM fpm.FPM_DAMAGE_COMPENSATION_R;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_DAMAGE_COMPENSATION_R LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_FIRE;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10)||'FPM_FIRE');
         FOR i IN cur_FPM_FIRE LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_JFM_MASTER;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_JFM_MASTER LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_JFM_DETAILS;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_JFM_DETAILS LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_PROTECTION_FIRE_MASTER;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_PROTECTION_FIRE_MASTER LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_PROTECTION_FIRE_DETAILS;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_PROTECTION_FIRE_DET LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_ENCROACHMENT;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_ENCROACHMENT LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         SELECT COUNT(*) INTO ln_count FROM FPM_ENCROACHMENT_REMOVALS;
         UTL_FILE.PUT_LINE(lh_filename, RPAD(ln_count,10));
         FOR i IN cur_FPM_ENCROACHMENT_REMOVALS LOOP
         UTL_FILE.PUT_LINE(lh_filename, i.outstring);
         END LOOP;
         UTL_FILE.FCLOSE_ALL;
         po_status := 'NO ERROR';      
         EXCEPTION
                   WHEN UTL_FILE.INVALID_PATH      OR UTL_FILE.INVALID_MODE THEN
                                       po_status := 'I 1';
                   WHEN UTL_FILE.INVALID_FILEHANDLE OR UTL_FILE.INVALID_OPERATION OR UTL_FILE.INTERNAL_ERROR OR UTL_FILE.WRITE_ERROR THEN
                                       po_status := 'I 2';
                   WHEN OTHERS THEN
                                       po_status := lc_error;
                                       LC_ERROR:='I 4';
                                       dbms_output.put_line(LC_ERROR);
    END;
    END;
    If i uncomment UTL_FIle.Fopen statement, the error text will be the path name and file name.
    Can anyone advise as to what should be done to resolve this on XE. It worked fine on 8i.
    I have runcatproc.sql and utlfile.sql also
    regards
    kunal

    Hi
    On 8i you would have set the UTL_DIR_PATH parameter
    in the init.ora file. Did you do this for your XE
    database? I hope you are referring to the UTL_FILE_DIR parameter. I have set this parameter to value *.
    Although the better approach would be to
    create a directory object for the file path, an
    option which was introduced in 9i..
    Can you please elaborate me on this. I tried declaring the create directory statement in the package, but that didnt help. I have already created one through sql command line. How can i use this directory as an alternative to utl_file

  • Solaris HTTP - MS IIS EOF bug, timeout failures

    Greetings,
    Experiencing what appears to be an "HTTP EOF" problem
    running on Solaris 2.7 (Apache ws) for several months.
    When my Perl script requests image files, from select remote
    servers, the requests hang as if waiting on the last packet to be received.
    The images are exclusivly owned by the people that run my cgi script. This
    is strictly enforced.
    Problem is recreated it using LWP, WGET and LYNX,all fail
    the same way. (please see trace data below)
    I have a simple script with blocks of urls from several sites
    using LYNX with trace on that shows the failure every time.
    (please see below)
    It works on all non Solaris platforms that I, and others, have tried
    (WIN, AIX, etc)
    An HTTP 200 is always recieved, with the proper length specified in the
    headers.
    The hang occurs on what appears to be the last packet (as seen from
    LYNX trace)
    Sometiimes requests complete after several minutes, with a partial image
    file. Occasionally a few requests work fine.
    I've seen other newsgroup appends with the exact problem, no solution
    Others equate the problem strictly with requests from Solaris to an MS
    web server (see related append below)
    I can't get my web hosting company to move on this, they've run my
    sample app and agree "there's a problem". I've appended this on several
    newsgroups in the past, others have run my script, lot of discussion and agreement that there's a problem but to date no solutions.
    Looks like an operating system bug to me.
    I've tried searching Sun's site for a possible answer but got lost each
    time. Not sure how to searh for known fixes, assume I can't open a problem report since I don't own the OS license.
    Another related append is included below along with my test script and
    trace output.
    Any assistance or advice is most appreciated.
    Thank you,
    Steve Borruso
    From a libwww newsgroup append .....On Solaris, an LWP request sometimes fails (ie. reports a server error)
    when the server is fine, b/c of some interaction between the OS and the
    server response. (See below for more info.) In fact, LWP is receiving data,
    but the data is improperly terminated and LWP times out.
    There is an interaction between Solaris and certain web servers (notably
    Microsoft-IIS/4.0) where the response to a GET comes back improperly
    terminated. You can observe this independently of LWP by doing a "telnet
    www.ndu.edu 80",
    and then "GET http://www.ndu.edu/ndu/inss/strforum/forum83.html"
    You will see telnet receive the response (it's a 404), but then (usually
    but not always) fail to terminate. As far as I know, you will only see this
    on Solaris (I'm on Solaris 7, have heard similar problems w/ 6); I've tried
    same under Linux and haven't seen this problem. I have seen this on a
    number of other sites.
    Trace output from a past run of my script ...
    GET /Sell/SSProfiles/10011921/Images/hugedragonbeads.JPG HTTP/1.0
    Host: images.auctions.goto.com
    Accept: text/html, text/plain, text/sgml, text/x-sgml,
    application/x-wais-source
    , application/html, */*;q=0.001
    Accept-Encoding: gzip, compress
    Accept-Language: en
    Negotiate: trans
    User-Agent: Lynx/2.7.1 libwww-FM/2.14
    Sending HTTP request.
    HTTP: WRITE delivered OK
    HTTP request sent; waiting for response.
    HTTP: Trying to read 1023
    HTTP: Read 1023
    Read 1023 bytes of data.
    HTTP: Rx: HTTP/1.1 200 OK
    HTTP: Scanned 2 fields from line_buffer
    --- Talking HTTP1.
    HTTP/1.1 200 OK
    HTFormat: Constructing stream stack for www/mime to www/present
    StreamStack: found weak wildcard match: www/present
    StreamStack: found exact match: www/mime
    HTMIME: Server: Microsoft-IIS/4.0
    Date: Fri, 24 Nov 2000 02:38:17 GMT
    Content-Type: image/jpeg
    Accept-Ranges: bytes
    Last-Modified: Tue, 15 Aug 2000 22:32:20 GMT
    ETag: "38bfa4ac87c01:1165"
    Content-Length: 17935
    ����
    HTMIME: Got 'S' at beginning of line, state now S
    HTMIME: Was S, found E, state now SE'
    HTMIME: Was SE, foun

    <pre>
    Sending trace output and code again (hopefully formatted)
    Trace output from a past run of my script ...
    GET /Sell/SSProfiles/10011921/Images/hugedragonbeads.JPG HTTP/1.0
    Host: images.auctions.goto.com
    Accept: text/html, text/plain, text/sgml, text/x-sgml,
    application/x-wais-source
    , application/html, */*;q=0.001
    Accept-Encoding: gzip, compress
    Accept-Language: en
    Negotiate: trans
    User-Agent: Lynx/2.7.1 libwww-FM/2.14
    Sending HTTP request.
    HTTP: WRITE delivered OK
    HTTP request sent; waiting for response.
    HTTP: Trying to read 1023
    HTTP: Read 1023
    Read 1023 bytes of data.
    HTTP: Rx: HTTP/1.1 200 OK
    HTTP: Scanned 2 fields from line_buffer
    --- Talking HTTP1.
    HTTP/1.1 200 OK
    HTFormat: Constructing stream stack for www/mime to www/present
    StreamStack: found weak wildcard match: www/present
    StreamStack: found exact match: www/mime
    HTMIME: Server: Microsoft-IIS/4.0
    Date: Fri, 24 Nov 2000 02:38:17 GMT
    Content-Type: image/jpeg
    Accept-Ranges: bytes
    Last-Modified: Tue, 15 Aug 2000 22:32:20 GMT
    ETag: "38bfa4ac87c01:1165"
    Content-Length: 17935
    ����
    HTMIME: Got 'S' at beginning of line, state now S
    HTMIME: Was S, found E, state now SE'
    HTMIME: Was SE, found R, checking for 'ver'
    HTMIME: PICKED UP Server: 'Microsoft-IIS/4.0'
    HTMIME: Got 'D' at beginning of line, checking for 'ate:'
    HTMIME: PICKED UP Date: 'Fri, 24 Nov 2000 02:38:17 GMT'
    HTMIME: Got 'C' at beginning of line, state now C
    HTMIME: Was C, found O, state now CO'
    HTMIME: Was CO, found N, state now CON
    HTMIME: Was CON, found T, checking for 'ent-'
    HTMIME: in case CONTENT_
    HTMIME: Was CONTENT_, found T, state now CONTENT_T
    HTMIME: in case CONTENT_T
    HTMIME: Was CONTENT_T, found Y, checking for 'pe:'
    HTMIME: PICKED UP Content-Type: 'image/jpeg'
    HTMIME: Got 'A' at beginning of line, state now A
    HTMIME: Was A, found C, checking for 'cept-ranges:'
    HTMIME: PICKED UP Accept-Ranges: 'bytes'
    HTMIME: Got 'L' at beginning of line, state now L
    HTMIME: Was L, found A, checking for 'st-modified:'
    HTMIME: PICKED UP Last-Modified: 'Tue, 15 Aug 2000 22:32:20 GMT'
    HTMIME: Got 'E' at beginning of line, state now E
    HTMIME: Was E, found T, checking for 'ag:'
    HTMIME: PICKED UP ETag: '38bfa4ac87c01:1165'
    HTMIME: Got 'C' at beginning of line, state now C
    HTMIME: Was C, found O, state now CO'
    HTMIME: Was CO, found N, state now CON
    HTMIME: Was CON, found T, checking for 'ent-'
    HTMIME: in case CONTENT_
    HTMIME: Was CONTENT_, found L, state now CONTENT_L
    HTMIME: in case CONTENT_L
    HTMIME: Was CONTENT_L, found E, checking for 'ngth:'
    HTMIME: PICKED UP Content-Length: '17935'
    Converted to integer: '17935'
    HTMIME: MIME Content-Type is 'image/jpeg', converting to 'www/present'
    HTFormat: Constructing stream stack for image/jpeg to www/present
    StreamStack: found weak wildcard match: www/present
    StreamStack: Using www/present
    Read 437 of 17935 bytes of data.
    Read 1897 of 17935 bytes of data.
    Read 3357 of 17935 bytes of data.
    Read 4817 of 17935 bytes of data.
    Read 6541 of 17935 bytes of data.
    Read 8001 of 17935 bytes of data.
    Read 10209 of 17935 bytes of data.
    Read 11669 of 17935 bytes of data.
    Read 13877 of 17935 bytes of data.
    Read 15337 of 17935 bytes of data.
    Read 17140 of 17935 bytes of data.
    (never completes after this, if I "cntrl C" I get a partial image file)
    Here's my script .......
    #!/usr/bin/perl -w
    @URLValue=();
    # Images from auctions.goto -
    #$URLValue[0] =
    'http://images.auctions.goto.com/Sell/SSProfiles/10011921/Images/hugedragonbeads.JPG';
    #$URLValue[1] =
    'http://images.auctions.goto.com/Sell/SSProfiles/10011921/Images/yellowribbona.JPG';
    #$URLValue[2] =
    'http://images.auctions.goto.com/Sell/SSProfiles/10011921/Images/jcharmsNov12E.JPG';
    #$URLValue[3] =
    'http://images.auctions.goto.com/Sell/SSProfiles/10011921/Images/turquoise8mma.JPG';
    # Images from AOL -
    #$URLValue[0] = 'http://members.aol.com/shasta4737/nicole1.jpg';
    #$URLValue[                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to create/delete files from filesystem using PL/SQL ? UTL_FILE?

    Greetings,
    I will start by explaining what i intend to do.
    I have an application made in APEX. This application will have among other purposes the managment of pdf files which will reside in the filesystem.
    I have questioned the person in charge to keep the pdf files in the database and not in the filesystem but without success.
    So the pdf files reside in the filesystem and there is a record in a database table about them. A table keeps all info about the pdf, their location , size and name, creation date etc.
    The APEX application will have a mecanism to allow the deletion of the pdf files if an administrator decides.
    So it should be possible for an administrator to schedule the deletion of all pdf files whoe creation date is older than 2008 for example
    So, how can i achieve that?
    After some research i foudn about the UTL_FILE package which seems to have it takes to perform the task in issue.
    My idea was to have a script in the operating system which runs nightly and reads a file containing all file names of the pdf to be erased.
    The file which contains the names of the pdfs to be erased will be generated by the database a few minutes before.
    If there are no pds files to be erased than the file containing the names will simply be empty
    Are there any other viable solutions out there?
    And as for opening/creating the file withn the pdf names, i use:
    UTL_FILE.FOPEN (
    location IN VARCHAR2,
    filename IN VARCHAR2,
    open_mode IN VARCHAR2,
    max_linesize IN BINARY_INTEGER)
    RETURN file_type;
    And as for writing lines (a pdf name per line ), i use;
    UTL_FILE.PUT_LINE (
    file IN FILE_TYPE,
    buffer IN VARCHAR2,
    autoflush IN BOOLEAN DEFAULT FALSE);
    is there a better solution?
    thanks all.
    -> My Homepage <-
    Edited by: Igor Carrasco on Apr 14, 2009 3:11 PM
    Edited by: Igor Carrasco on Apr 14, 2009 3:12 PM

    Greetings,
    I have read that link above, some questions still though.
    I will provide some more information.
    -First the database is in a windows server.
    The windows server has a virtual drive mounted as z:\ <-- this points to a directory in virtual machine, i can manually access/create/delete files manually,i tested.
    -Second utl_file_dir is defined as * , in t that enough to cover mounted drives? ( i can't change the init.ora and reboot the db right now :( gotta wait.. )
    Do i explicitly have to define utfl_file_dir = z: ?
    -Third haven't had the chance to test it on linux or any other operating system, assuming a virtual unit is mounted successfully and that the issues above are solved i should be able to operate on any mounted drive whatever the os, right?
    Best regards

  • Problem with UTL_FILE (please see my last post on this thread)

    Hi all,
    I'm trying to get the code (procedures, functions, etc) of my schemas. I've tried it using DBMS_METADATA.GET_DDL but it fails with many objects. Finally, I'm trying to create a procedure to extract the code.
    I've created this two procedures:
    CREATE OR REPLACE PROCEDURE spool_code (code IN varchar2, propi IN varchar2) is
    CURSOR codigo is
    select text from dba_source where name = code and owner = propi order by line;
    line varchar2(4000);
    BEGIN
    open codigo;
    loop
    fetch codigo into line;
    exit when codigo%notfound;
    dbms_output.put_line(line);
    end loop
    close;
    END;
    CREATE OR REPLACE PROCEDURE ext_codigo is
    CURSOR objeto is
    select object_name, owner from dba_objects where object_type in ('PROCEDURE','FUNCTION','PACKAGE')
    and owner not in ('OUTLN','DBSNMP','SYSTEM','SYS','REPADMIN','PERFSTAT','SPOTLIGHT','MONITOR','PRUEBAS','TOAD')
    and status='VALID';
    nom varchar2(128);
    owner varchar2(30);
    BEGIN
    open objeto;
    loop
    fetch objeto into nom, owner;
    exit when objeto%notfound;
    spool_code(nom, owner);
    end loop;
    close objeto;
    END;
    And I'm calling from sqlplus to spool it:
    SQL> spool Users_code.sql
    SQL> exec ext_codigo;
    But it don't bring me results...
    where is the problem??
    Thanks in advance for your support!
    dbajug
    Edited by: dbajug on Aug 29, 2012 6:36 AM

    Hi,
    yes guys, I've set serverout on using the max limit but, always fails with:
    ERROR at line 1:
    ORA-20000: ORU-10027: buffer overflow, limit of 1000000 bytes
    ORA-06512: at "SYS.DBMS_OUTPUT", line 35
    ORA-06512: at "SYS.DBMS_OUTPUT", line 198
    ORA-06512: at "SYS.DBMS_OUTPUT", line 139
    ORA-06512: at "SYS.SPOOL_CODE", line 15
    ORA-06512: at "SYS.EXT_CODIGO", line 17
    ORA-06512: at line 1
    I'm working with a 9i version trying to extract the code to migrate it to a 11g.
    In order to avoid the buffer error, I've decide use the UTL_FILE package but I'm having another problem: my procedure now is this
    CREATE OR REPLACE PROCEDURE spool_code (code IN varchar2, propi IN varchar2) is
    CURSOR codigo is
    select text from dba_source where name = code and owner = propi order by line;
    line varchar2(4000);
    out_file UTL_FILE.File_Type;
    BEGIN
    begin
    out_file := UTL_FILE.Fopen('/export/home/oracle', 'Users_code.sql', 'w');
    exception
    when others then
    dbms_output.put_line('Error opening file');
    end;
    open codigo;
    loop
    fetch codigo into line;
    exit when codigo%notfound;
    UTL_FILE.Put_Line(out_file, line);
    end loop;
    close codigo;
    UTL_FILE.Fclose(out_file);
    END;
    The directory exists and the file too but fails with this error:
    ERROR at line 1:
    **ORA-29282: invalid file ID**
    ORA-06512: at "SYS.UTL_FILE", line 714
    ORA-06512: at "SYS.SPOOL_CODE", line 23
    ORA-06512: at "SYS.EXT_CODIGO", line 17
    ORA-06512: at line 1
    any idea? about the reason? The file is a text file on the server:
    ls -lrt /export/home/oracle/Users_code.sql
    -rw-rw-r-- 1 oracle dba 0 Aug 29 14:43 /export/home/oracle/Users_code.sql
    best regards,
    dbajug

  • Line size in UTL_FILE

    Hi,
    Can someone please tell me what is the max. number of characters that can be written using UTL_FILE in Oracle 8.1.7?

    Perhaps I should have been more specific; I wanted to know how many characters can PUT_LINE or PUT function take at one time to write. Well, in 8.1.7, it is only 1000 characters on UNIX platform. Though it is not mentioned anywhere so I am not sure if this is OS limitation. However I had to do a lot of trial and error before e finding this out. Hope this would help people on the forum.
    Thanks guys for your help. I know I can always count on you all.
    Here is the sample code. In this, although, I had defined a buffer of 4000, but it consistently gave me 'WRITE_ERROR' for PUT_LINE or PUT function, until I reduced the buffer size used with these functions to 1000. Alternatively now I will use PUT function recursively and add NEW_LINE character after the entire buffer is read.
    declare
    vstr varchar(4000);
    file_handle UTL_FILE.FILE_TYPE;
    begin
    select rpad('Testiing',990,'xyz') into vstr from dual;
    file_handle := UTL_FILE.FOPEN ('/usr/users/cornwas/workplace', 'a.txt', 'w');
    for i in 1..20 loop
    UTL_FILE.PUT_LINE(file_handle, vstr);
    UTL_FILE.FFLUSH(file_handle);
    end loop;
    UTL_FILE.FCLOSE(file_handle);
    EXCEPTION
    WHEN UTL_FILE.INVALID_PATH THEN
    RAISE_APPLICATION_ERROR(-20100,'Invalid Path');
    WHEN UTL_FILE.INVALID_MODE THEN
    RAISE_APPLICATION_ERROR(-20101,'Invalid Mode');
    WHEN UTL_FILE.INVALID_FILEHANDLE THEN
    RAISE_APPLICATION_ERROR(-20102,'Invalid Filehandle');
    WHEN UTL_FILE.INVALID_OPERATION THEN
    RAISE_APPLICATION_ERROR(-20103,'Invalid Operation -- May signal a file locked by the OS');
    WHEN UTL_FILE.READ_ERROR THEN
    RAISE_APPLICATION_ERROR(-20104,'Read Error');
    WHEN UTL_FILE.WRITE_ERROR THEN
    RAISE_APPLICATION_ERROR(-20105,'Write Error');
    WHEN UTL_FILE.INTERNAL_ERROR THEN
    RAISE_APPLICATION_ERROR(-20106,'Internal Error');
    WHEN NO_DATA_FOUND THEN
    RAISE_APPLICATION_ERROR(-20107,'No Data Found');
    WHEN VALUE_ERROR THEN
    RAISE_APPLICATION_ERROR(-20108,'Value Error');
    WHEN OTHERS THEN
    RAISE_APPLICATION_ERROR(-20109,'Unknown UTL_FILE Error');
    end;

Maybe you are looking for

  • Taking Java a little lower

    This post is not a help request. It's just a sort of poll or curiousity question. Would you agree to let java (by means of new api and jvm support of them, obviously) have lower level features? Java VM works on every system, through native code, or b

  • Replace Smart AC Adapter for HP 17-E054CA Notebook

    I have a new HP17-EO54CA and it came with a Smart AC Adapter. I keep getting messages that I should purchase a higher output AC adapter as it may be needed for some applications. I don't know how to do this. i have Googled about as many combinations

  • Has anyone managed to get HP Warranty Information into SCCM?

    Has anyone managed to get HP Warranty Information into SCCM? I have tried a few scripts that I found on the net but none of them seem to work as I believe HP updated there site this year..

  • How to use postback property for JSF to reneder a popup only once

    Hi All, I'm using java script function to show a JSF page as popup. I have called the javascript function on page load of another JSF page. How do i make sure that the popup is getting rendered only once and not everytime the page is getting refreshe

  • Create problem when compiling the servlet

    hi, i got a problem when i compile a servlet when i try to compile the servlet, it shows that it could not found the classes like httpservlet, etc. means the classes of the servlet i am using the j2sdk1.4.1 edition, i had include the javax.servlet.*;