How do I fill by chunks a clob inside a table while XML is generated?

Hello everybody:
Needed to generate a single XML file from around 50 million rows, where the XML ouput matches not only row data but another default values for another elements and attributes (not from database but using strings and types with default values). Its generation will be a monthly task, so the process will repeat time by time. For generating that document, currently focus is based on using a batch process relying on Spring Batch, by using a single JDBC query where a join happens between a table and a materialized view (Both are datawarehouses, so it is not expected a change onto the data, and are single, non-partitioned tables). From my point of view, that approach uses: database resources, network resources, disk resources, and processing resources, including the price of making the join, sending to network, creating objects, validating, and making the file, finally wasting too much time generating that XML file. Promisse above that approach is to restart from the last execution point (savepoints) and to process by chunks of data (ResultSets). That processs currently is in development.
Seen Oracle has XML capabilites, another approach may be delegating the complete generation of that file to the database (Current version in use here is 10g release 2). My current approach is to generate a clob where I will put all the XML throughput and putting it inside a table (My first approach was to put directly into a disk file, unfortunately, isn't possible because internal policies). Considering limitations on memory, processing and disk space, needed to append a single row-as-xml to the clob as soon as it is rendered, and putting the clob inside the field as soon as possible, or putting the clob inside the field, and appending into it as the data is generated (preffered approach); also, considering its a very large operation, needed to make savepoints for each chunk of data processed (each 20,000 rows, as example). Some way I think it may be done is making a temporary clob, filling the clob while getting the rowid, using that rowid as savepoint (No other CRUD operations awaited for the table and the materialized view), and later appending the clob to the clob(s) in table (is there some way for append one clob to another one in table?). Explained all those points, how do I manage the process in order to achieve that goals, using a PL/SQL stored procedure while using built-in functions?.
Update: I did a small pseudocode where I describe my current approach:
Defining a cursor;
Creating a segment clob;
Creating a temporary clob;
Defining a chunk size;
Defining a temp rowid variable;
Defining a control number to be 0;
While cursor
     getting rowid and generating next row as xml into a temporary clob (XMLSerialize):
     increment the control number;
     if control number equals 1
write rowid variable to a control table;
     append the temporary clob to a segment clob;
     if control number is equals than the chunk size defined:
          append the segment clob to the clob inside a control table;
          restart the control number to be 0;
     else
          continue;
At this time, I'm with doubt about how to append the segment clob directly to the clob inside the control table (I find using that clob as PL/SQL variable would use too much memory and swap).
Any help shall be apreciated. Thanks in advance.

Well, of course it's looping. That's what the "while" statement does. What you need is more like this:
if (tableNumberJTextField.getText().equals("")){
  JOptionPane.showMessageDialog(null, "Table Number cannot be empty","Error", JOptionPane.ERROR_MESSAGE);
  tableNumberJTextField.requestFocusInWindow();
}and you want this code to be called every time tableNumberJTextField loses focus.

Similar Messages

  • How can I fill structure from the line with contetnt of a XML file inside?

    How can I fill structure from the line with contetnt of a XML file inside?
    I have array of lines with XML documents inside. All XML's have the same structure.
    I need to fill array of structures (with the same structure like given XML's) from data of these XML's.
    How can I do this? I am trying Transformation with ora:parseEscapedXML, but receive error: "XPath expression failed to execute.
    Error while processing xpath expression, the expression is "ora:processXSLT("Transformation_1.xsl", bpws:getVariableData("ProcessedFiles"))", the reason is javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: Could not find function: parseEscapedXML.
    Please verify the xpath query."

    Ive posted the new code but now I'm getting a FileAlreadyExistException error. How do I handle this exception error correctly in my code?
    import java.io.IOException;
    import java.nio.file.FileAlreadyExistsException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class MyDomParser {
      public static void main(String[] args) {
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      try {
      DocumentBuilder builder = factory.newDocumentBuilder();
      Document doc = builder.parse("ENtemplate.xml");
      doc.normalize();
      NodeList rootNodes = doc.getElementsByTagName("templates");
      Node rootNode = rootNodes.item(0);
      Element rootElement = (Element) rootNode;
      NodeList templateList = rootElement.getElementsByTagName("template");
      for(int i=0; i < templateList.getLength(); i++) {
      Node theTemplate = templateList.item(i);
      Element templateElement = (Element) theTemplate;
      System.out.println(templateElement.getAttribute("name")+ ".xml");
      for(int i=0; i < templateList.getLength(); i++) {
      Node theTemplate = templateList.item(i);
      Element templateElement = (Element) theTemplate;
      String fileName = templateElement.getAttribute("name") + ".xml";
      Files.createFile(Paths.get(fileName));
      System.out.println("File" + ":" + fileName + ".xml created");
      } catch (ParserConfigurationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (SAXException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();

  • How to get a value from a column inside a table

    Hi,
    I have got the following problem. I have got a table with some data inside. And a new column, which is not in the dataprovider. Now i search for an opportunity to go through the rows of the table and check the value of this column. I cant do this with the dataprovider or the rowset. My question is now how can i do this? The table object doesnt seem to have a corresponding method.
    Thanks in advance for help
    Acinonyx

    this is some code you can use (based on Winston's and others' tips):
    put this in you page bean:
    private HashSet selectedRows = new HashSet();
    public boolean isSelected() {
    TableRowDataProvider trdp = (TableRowDataProvider)getBean("currentRow");
    if (trdp == null) {
    return false;
    RowKey rowKey = trdp.getTableRow();
    if (this.selectedRows.contains(rowKey.getRowId()))
    return true;
    else
    return false;
    public void setSelected(boolean b) {
    TableRowDataProvider trdp = (TableRowDataProvider)getBean("currentRow");
    RowKey rowKey = trdp.getTableRow();
    if (checkbox1.isChecked()) {
    this.selectedRows.add(rowKey.getRowId());
    Object v = this.t_fotoDataProvider.getValue("fieldName", rowKey);
    } else {
    this.selectedRows.remove(rowKey.getRowId());
    and then bind the "selected" property of the checkbox column to the "selected" property of the page bean.
    Now, eveytime the page is submitted, you can do something useful, for example, in the setSelected() method (the row that starts with Object v = ... get's the value of some field corresponding to the checked row)
    Mauro

  • How to write a procedure to load the data into a table using xml file as input to the procedure?

    Hi,
    Iam new to the xml,
    can u please anyone help me how to write procedure to load the data into a table using xml as input parameter to a procedure and xml file is as shown below which is input to me.
    <?xml version="1.0"?>
    <DiseaseCodes>
    <Entity><dcode>0</dcode><ddesc>(I87)Other disorders of veins - postphlebitic syndrome</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity>
    <Entity><dcode>0</dcode><ddesc>(J04)Acute laryngitis and tracheitis</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity>
    <Entity><dcode>0</dcode><ddesc>(J17*)Pneumonia in other diseases - whooping cough</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity>
    </DiseaseCodes>.
    Regards,
    vikram.

    here is the your XML parse in 11g :
    select *
      from xmltable('//Entity' passing xmltype
    '<?xml version="1.0"?>
    <DiseaseCodes>
    <Entity><dcode>0</dcode><ddesc>(I87)Other disorders of veins - postphlebitic syndrome</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity>
    <Entity><dcode>0</dcode><ddesc>(J04)Acute laryngitis and tracheitis</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity>
    <Entity><dcode>0</dcode><ddesc>(J17*)Pneumonia in other diseases - whooping cough</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity>
    </DiseaseCodes>
    ') columns
      "dcode" varchar2(4000) path '/Entity/dcode',
      "ddesc" varchar2(4000) path '/Entity/ddesc',
      "reauthflag" varchar2(4000) path '/Entity/reauthflag'
    dcode                                                                            ddesc                                                                            reauthflag
    0                                                                                (I87)Other disorders of veins - postphlebitic syndrome                           0
    0                                                                                (J04)Acute laryngitis and tracheitis                                             0
    0                                                                                (J17*)Pneumonia in other diseases - whooping cough                               0
    SQL>
    Using this parser you can create procedure as
    SQL> create or replace procedure myXMLParse(x clob) as
      2  begin
      3    insert into MyXmlTable
      4      select *
      5        from xmltable('//Entity' passing xmltype(x) columns "dcode"
      6                      varchar2(4000) path '/Entity/dcode',
      7                      "ddesc" varchar2(4000) path '/Entity/ddesc',
      8                      "reauthflag" varchar2(4000) path '/Entity/reauthflag');
      9    commit;
    10  end;
    11 
    12  /
    Procedure created
    SQL>
    SQL>
    SQL> exec myXMLParse('<?xml version="1.0"?><DiseaseCodes><Entity><dcode>0</dcode><ddesc>(I87)Other disorders of veins - postphlebitic syndrome</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity><Entity><dcode>0</dcode><ddesc>(J04)Acute laryngitis and tracheitis</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity><Entity><dcode>0</dcode><ddesc>(J17*)Pneumonia in other diseases - whooping cough</ddesc><claimid>34543></claimid><reauthflag>0</reauthflag></Entity></DiseaseCodes>');
    PL/SQL procedure successfully completed
    SQL> select * from MYXMLTABLE;
    dcode                                                                            ddesc                                                                            reauthflag
    0                                                                                (I87)Other disorders of veins - postphlebitic syndrome                           0
    0                                                                                (J04)Acute laryngitis and tracheitis                                             0
    0                                                                                (J17*)Pneumonia in other diseases - whooping cough                               0
    SQL>
    SQL>
    Ramin Hashimzade

  • How to make an insert script for CLOB data types?

    I need to have an insert script for Oracle 11g where I insert large texts into a CLOB field
    I exported data from a source table using TOAD's export dataset and the insert statements option, so it generates a script of just simple insert into statements with the clob strings in the values clause within single quotes.
    While most of the inserts succeed, several fail with the error: string literal too long
    How can I insert long texts into clobs?
    One workaround I was considering, is maybe breaking up those inserts which are too big, so that it inserts a chunk, and then does an update to append additional chunks? not sure if that would work either
    first wanted to get any ideas from the oracle experts here in case there is a much easier, non-manual labor intensive way.

    Thank you for that informative link, Raj
    I wouldn't be able to use SQL Loader for this though, this is something that gets submitted to a DBA in a request and it must be in a script that can be run in Sql Plus, and it cannot pull it from a table or file.

  • HT1438 dont i have to submit a slip before giving back in my ipod for fixing? what do i do? how do i fill in the form?

    how do i fill in the form to give back my ipod and get a new one? whats the website i go to and what do i type in? can i change the color of my ipod from black to white?

    Follow the instructions here:
    Apple - Support - iPod - Service FAQ
    I do not think you can change the color but you can ask.

  • How do I fill an Excel spreadsheet with the contents of a DataTable? (C#, OleDb)

    The following fills a DataTable with the contents of an Excel spreadsheet.
        oledbCmd.CommandText = "SELECT * FROM [" + stSheetName + "$]";
        DataTable dtDataTable = new DataTable();
        using (OleDbDataAdapter oledbAdapter = new OleDbDataAdapter(oledbCmd))
        oledbAdapter.Fill(dtDataTable);
    How do I fill an Excel spreadsheet with the contents of a DataTable?
    bhs67

    You can try this Excel library, it can help u to
    export datatable to excel to Database.
    After add the reference to your project ,add the following code:
    private void button1_Click(object sender, EventArgs e)
    //connect database
    OleDbConnection connection = new OleDbConnection();
    connection.ConnectionString @"Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=""demo.mdb"";User Id=;Password="
    OleDbCommand command = new OleDbCommand();
    command.CommandText = "select * from parts";
    DataSet dataSet = new System.Data.DataSet();
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter(command.CommandText,connection);
    dataAdapter.Fill(dataSet);
    DataTable t = dataSet.Tables[0];
    //export datatable to excel
    Workbook book = new Workbook();
    Worksheet sheet = book.Worksheets[0];
    sheet.InsertDataTable(t, true, 1, 1);
    book.SaveToFile("insertTableToExcel.xls");
    System.Diagnostics.Process.Start("insertTableToExcel.xls");
    http://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Data-Export-/Import-Export-Datatable-to-Excel-from-Database.html

  • How can I fill a table of objects from cursor with select * bulk collect???

    Hi All, I have a TYPE as OBJECT
    create or replace type dept2_o as object (
    deptno NUMBER(2),
    dname VARCHAR2(14),
    loc VARCHAR2(13));
    I can fill a table of objects from cursor with out select * bulk collect...., row by row
    declare
    TYPE dept2_t IS TABLE of dept2_o;
    dept_o_tab dept2_t:=dept2_t();
    i integer;
    begin
    i:=0;
    dept_o_tab.extend(20);
    for rec in (select * from dept) loop
    i:=i+1;
    dept_o_tab(i):=dept2_o(
    deptno => rec.deptno,
    dname => rec.dname,
    loc =>rec.loc
    end loop;
    for k IN 1..i loop
    dbms_output.put_line(dept_o_tab(k).deptno||' '||dept_o_tab(k).dname||' '||dept_o_tab(k).loc);
    end loop;
    end;
    RESULT
    10 ACCOUNTING NEW YORK
    20 RESEARCH DALLAS
    30 SALES CHICAGO
    40 OPERATIONS BOSTON
    But I can't fill a table of objects from cursor with select * bulk collect construction ...
    declare
    TYPE dept2_t IS TABLE of dept2_o;
    dept_o_tab dept2_t:=dept2_t();
    begin
    dept_o_tab.extend(20);
    select * bulk collect into dept_o_tab from dept;
    end;
    RESULT
    ORA-06550: line 6, column 39;
    PL/SQL: ORA-00947: not enough values ....
    How can I fill a table of objects from cursor with select * bulk collect???

    create or replace type dept_ot as object (
    deptno NUMBER(2),
    dname VARCHAR2(14),
    loc VARCHAR2(13));
    create table dept
    (deptno number
    ,dname varchar2(14)
    ,loc varchar2(13)
    insert into dept values (10, 'x', 'xx');
    insert into dept values (20, 'y', 'yy');
    insert into dept values (30, 'z', 'zz');
    select dept_ot (deptno, dname, loc)
      from dept
    create type dept_nt is table of dept_ot
    declare
       l_depts dept_nt;
    begin
       select dept_ot (deptno, dname, loc)
         bulk collect
         into l_depts
         from dept
       for i in l_depts.first .. l_depts.last
       loop
          dbms_output.put_line (l_depts(i).deptno);
          dbms_output.put_line (l_depts(i).dname);
          dbms_output.put_line (l_depts(i).loc);    
       end loop;
    end;
    /

  • How to fill the records from a User Define Table to PO item Grid

    Hi To all,
    I need to fill data from User Define table records into Purchase Order Item Grid.
    I created an UDF Filed in PO - Header Part - "PRS"(Filed Name)
    By using Formatted Search in itemcode column, i called a query,
    "Select itemcode, qty from (@user define tablename) where PRS = $http://OPOR.U_PRS"
    For eg:
    Output from querry
    ItemCode Qty
    ABC 1
    DEF 2
    DFG 7
    SDGD 9
    By using formatted search it is filling only first data in to itemcode column in PO Grid.
    Please help, how can i fill ALL the data in to my PO Grid?
    Thanks in Advance
    SAGAR

    The easisest way is to create datasource and the result bind to grid.
    Datasource:
               oDBDataSource = oForm.DataSources.DBDataSources.Add("@usertablename")
                Dim xoConditions As SAPbouiCOM.Conditions
                Dim xoCondition As SAPbouiCOM.Condition
                xoConditions = New SAPbouiCOM.Conditions
                xoCondition = xoConditions.Add
                xoCondition.BracketOpenNum = 1
                xoCondition.Alias = "u_zn"
                xoCondition.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
                xoCondition.CondVal = "cond"
                xoCondition.BracketCloseNum = 1
                oDBDataSource.Query(xoConditions)
    binding (example for matrix, in grid is simillar)
                oMatrix.Clear()
                Dim cols As SAPbouiCOM.Columns
                Dim column As SAPbouiCOM.Column
                cols = oMatrix.Columns
                column = cols.Item("colX")
                column.DataBind.SetBound(True, "@usertable", "u_x")
    oMatrix.LoadFromDataSource()
    hoep it helps
    Petr

  • How to save filled PDF in adobe reader 9.0

    Can you please tell me how to save filled PDF in adobe reader 9.0 with all the filled details

    You cannot buy 8 or 9.
    In X (10 - which you can't buy either), you can do File > Save as > Reader Extended PDF > Enable additional features.
    Important notes:
    1. KEEP THE ORIGINAL. Once rights are added many kinds of editing are permanently locked out.
    2. THERE ARE STRICT LIMITS on the number of people who can save a form. Details in the EULA: check it carefully (or have a lawyer check it).
    Also note that Reader XI can save forms with no special preparation.

  • I am trying to fill in a form in adobe exportpdf. How can I fill in numbers and symbols? Parenthesis, dollar sign etc.

    I am trying to fill in a form in adobe exportpdf. How can I fill in numbers and symbols? Parenthesis, dollar sign etc.

    Hi;
    Can you provide a little more detail, maybe a screenshot?  ExportPDF only converts PDFs to other file types, what exactly are you using to try to fill out the form?  The two Adobe form filling tools I would recommend would be:
    1) Adobe Reader - a free download you can install on your computer and can be used to fill out most any form.  For numbers, symbols etc it can depend on the field you are entering data into, some fields have restrictions, but you would use those keys on your keyboard, if nothing is entered then that field probably has restrictions.
    2) Adobe Fill & Sign: https://cloud.acrobat.com/fillsign - using the Fill & Sign tab on the acrobat.com website you can fill out most PDFs.  To enter numbers, symbols, etc you would simply add them using your keyboard.
    Thanks,
    Josh

  • How do I fill out a form already converted from pdf to word

    how do I fill out a form i converted from pdf to a word doc?

    What kind of "form" is it?  A .pdf or .doc file?
    Generally I would save the file somewhere (desktop or document folder).  There is a save button for attachments in mail's header section.  Then open the file with an appropriate app like Adobe Reader for .pdf files or Word or Pages for .doc files.  Fill out the form and save.  Then email the form back as an attachment.

  • How can I fill a pdf form with Excel?

    I have a pdf form and a set of Excel dates. How can I fill the form with this dates?
    Is there any way to transform excel dates into a fdf-File?
    Thank You for helping
    Hans

    I see. That's possible, in theory, but it requires using a complicated custom-made script.
    I would suggest using that Mail Merge option that's available in some versions of Excel to produce multiple single-page files, then flatten all of them (using an Action), and then merge them to a single file, to achieve the same result with much less effort.

  • IN NUMBERS HOW DO YOU FILL IN FOR A SERIES OF NUMBERS OR DATES

    In numbers how do you fill in for a series of numbers or dates without doing it manually

    You can enter a value in two cells that establishes a pattern, then select the two cells, then click (and hold) on the little circle at the bottom right corner of the selection and drag to fill as needed.
    A Number sequence:
    A Date sequence:

  • How can I fill in a form, save the form such that it cannot be further altered, and email it as it was saved?

    How can I fill in a form, save the form such that it cannot be further altered, and email it as it was saved?  I created a form with 5 fields.  It is a form letter that is intended as a receipt for funds received.  I want to fill in the date, name, amount received, etc., save the form with inserted data fields so they can't be further altered, and be able to email it as a complete unalterable PDF document.  What I'm doing now, is filling in the fields, printing it, scanning it, and emailing it as an unalterable document.  The document was created on a Mac using Adobe Acrobat Pro version 10.1.13.  The document is filled in on a PC that only has Adobe reader on it, printed, scanned and emailed as an attachment. There must be a better way! 

    If you have access to a ASP.net Web Server, then the submission could be FLATTENED with FDFToolkit.net and emailed without client-side email software by only using Adobe Reader.
    For more information check out the following websites:
    http://www.pdfemail.net/examples/
    http://www.fdftoolkit.net/examples/

Maybe you are looking for

  • Restore Preview default background?

    Hello! Can you help me guys? How can I restore the default background in Preview? (10.7 Lion). I changed it to a color in the preferences but I can't change it back to the default texture... :S (that is here by the way: /System/Library/Frameworks/App

  • How to do batch cancel confirmation

    Hi: guru, I can use C013 to cancel confirmation one operation by one operation. can i cancel all confirmation of one  production order or severel production orders just one step. is there any solution for Standard SAP.

  • Scope of List in custom program

    Hi Experts,     I have a requirement to include scope of list parameter in my selection screen just like ME3L Transaction. How can I achieve this functionality as it behaves in that standard transaction. Thanks & Regards, Arun.

  • Customer consignment price

    Hi, I would like to know from where system retrive the price during good issue for customer consignment using movement 633? Thank you

  • How did I get my hotmail email to sync to my iphone?

    I have my hotmail synced to go into mail on my macbook and it works great.  How do I get that to work on my iphone using cloud?  The only email that is coming to my iphone is my @me.com account which I dont really use.