How to insert data into the table of plain text stored as a CLOB in another table

Hi people,

Maybe it's an easy question for someone who is more frequently used files and CLOB.

I have a table that stores text files in the CLOB column. Files text includes some basic data that I want to load in the other - a text line = a new insert for me. Is there a "trick" how to do it effectively?

Here is my model:

Table OS_IMPORT_DOCS, stores the complete files as CLOB
SQL> desc OS_IMPORT_DOCS
Name          Type           Nullable Default Comments 
------------- -------------- -------- ------- -------- 
OBJECT_ID     NUMBER                                   
DATUM_ZMENY   DATE                    sysdate          
FILE_PATH     VARCHAR2(4000) Y                         
FILE_NAME     VARCHAR2(4000) Y                         
FILE_SIZE     NUMBER         Y                         
LAST_MODIFIED DATE           Y                         
DOCUMENT      CLOB           Y                         
STATUS        VARCHAR2(15)   Y        'NEW'  
Sample data from OS_IMPORT_DOCS
SQL> select *
  2    from os_import_docs d
  3  order by d.last_modified desc
  4  ;
 
 OBJECT_ID DATUM_ZMENY FILE_PATH                      FILE_NAME       FILE_SIZE  LAST_MODIFIED DOCUMENT    STATUS
---------- ----------- ------------------------------ --------------- ---------- ------------- ----------- ---------------
   1815043 13.8.2012 1 d:\data\C120813.DAT            C120813.DAT          16800 13.8.2012 16: <<CLOB>>    NEW
   1815042 13.8.2012 1 d:\data\C120812.DAT            C120812.DAT           3600 12.8.2012 22: <<CLOB>>    NEW
   1815041 13.8.2012 1 d:\data\C120811.DAT            C120811.DAT           1800 11.8.2012 13: <<CLOB>>    NEW
Example of file CLOB - stored text data (select d.document from os_import_docs d where d.object_id = 1815042 ;)
061053120820120000AGT000002Osoby                   0000000042301000000017210632
062322120820120000AGT000002Osoby                   0000000012301000000017197566
063526120820120001AGT000002Osoby                   0000000012301000000017197566
064234120820120001AGT000002Osoby                   0000000103301000000162218777
Above the example text includes "columns" in plain text:
timestamp - 1-14, SSMIHH24DDMMYYYY position format
flag - post 15-18
company code - position 19-27
etc...

How can I query data stored within the OS_IMPORT_DOCS. The DOCUMENT column, divide it into columns and insert into another table?
I have to read this method of 'online' file?


Thank you very much
Tomas

For the first three columns:

SQL> create type TRecord is object (
  2    ts           timestamp
  3  , flag         varchar2(4)
  4  , company_code varchar2(9)
  5  );
  6  /

Type created

SQL>
SQL> create type TRecordTable is table of TRecord;
  2  /

Type created

SQL>
SQL> create or replace function parse_clob (p_doc in clob)
  2  return TRecordTable pipelined
  3  is
  4    lf      number;
  5    eol     varchar2(2) := chr(10);
  6    eollen  number := length(eol);
  7    line    varchar2(32767);
  8    offs    number := 1;
  9  begin
 10    loop
 11      lf := dbms_lob.instr(p_doc, eol, offs);
 12      if lf != 0 then
 13        line := dbms_lob.substr(p_doc, lf - offs + 1 - eollen, offs);
 14        offs := lf + eollen;
 15      else
 16        line := dbms_lob.substr(p_doc, dbms_lob.getlength(p_doc) - offs + 1, offs);
 17      end if;
 18      pipe row (
 19        TRecord(
 20          to_timestamp(substr(line, 1, 14), 'HH24MISSDDMMYYYY')
 21        , substr(line, 15, 4)
 22        , substr(line, 19, 9)
 23        )
 24      );
 25      exit when lf = 0;
 26    end loop;
 27  end;
 28  /

Function created

SQL>
SQL> select t.*
  2  from os_import_docs d
  3     , table(parse_clob(d.document)) t
  4  where d.object_id = 1815042;

TS                                     FLAG COMPANY_CODE
-------------------------------------- ---- ------------
12/08/12 06:10:53,000000               0000 AGT000002
12/08/12 06:23:22,000000               0000 AGT000002
12/08/12 06:35:26,000000               0001 AGT000002
12/08/12 06:42:34,000000               0001 AGT000002
 

Tags: Database

Similar Questions

  • How to insert data into the table by using the expression builder in the assign activity

    How to insert data into the table by using the expression builder in affect business in BPEl, I use SOA Suite 11.1.1.5
    Can someone help me please

    Hello

    I don't think that oraext:query-database() can insert data into the table.

    What are your needs?
    Can not you plan to use the DB adapter with the insert operation?

    Kind regards
    Neeraj Sehgal

  • What trigger to use to insert data into the table db forms

    Hello

    My form is current having a block of database with the table reference. When you enter data into the form field and click Save. Automatically record is inserted in the database table.
    I want to do this under manual insert. I changed the block of data to a data non-base. Where should I write the insert statement to insert data into the table.
    Is - shutter release key of the form-level validation?

    Please notify.

    Thank you
    Didi.

    You can guide me how to remove the message FRM-40401 no changes to save and instead, I wanted to put 1 transaction record successful... some like it like that.

    Hi didi.
    And this is my last post I'll sleep. ;)
    Take form level trigger named preform
    and write on it

    :SYSTEM.MESSAGE_LEVEL := 5;
    

    I hope this works...

    Hamid

    Mark correct/good to help others to get the right answers. *

  • How to insert data into the database using smartview

    Hello
    I am trying to insert data into the database using * "Send data" * button on the Ribbon of Essbase.
    My database is empty.

    I opened an ad hoc network, it returns * "#missing" * in all cells
    I have modified the cells and provided data in the cells that I want to. Now, I supported on * "Send data" * button.
    It just reloaded the adhoc grid instead of submit data, I rechecked the data through data console Administrative Service are not inserted.

    I am following the right way to insert data? If not, could you please suggest me how (Populate) insert default data in the database?

    --
    VINET

    You go about it the right way, once you have submitted if you réactualisiez then data values should be there, if you POV is against members of dynamic calc and then data not written to the database, you need to check the Member properties of your POV.

    See you soon

    John
    http://John-Goodwin.blogspot.com/

  • How to insert data into the BLOB column

    Hi all

    Can someone help me to insert data in the BLOB data type column?

    The structure of the table is
    CREATE TABLE XXATFL_DM_FORCAST_STG
    (
    TASK_ID NUMBER,
    USER_ID NUMBER,
    CREATED_BY NUMBER (15),
    CREATION_DATE DATE,
    LAST_UPDATED_BY NUMBER (15),
    DATE OF LAST_UPDATE_DATE,
    LAST_UPDATE_LOGIN NUMBER (15),
    RECORD_STATUS VARCHAR2 (1 BYTE),
    ERROR_MESSAGE VARCHAR2 (4000 BYTE),
    DATA_FILE BLOB
    )

    I want to insert data into the column DATA_FILE. and this insert statement inside a procedure.

    Please help me as soon as possible because it is very urgent for me

    Thank you and best regards,
    Charrier

    Charrier,

    If you form the string yourself, you can use the function utl_raw.cast_to_raw on your channel.

    http://download.Oracle.com/docs/CD/B12037_01/AppDev.101/b10802/u_raw.htm#997086

    sql> create table t(
      2    id number,
      3    l_blob blob
      4  );
    
    sql> insert into t values(1, utl_raw.cast_to_raw('SampleString'));
    
    1 row created.
    
    sql> commit;
    
    Commit complete.
    
  • How to load data into the table of correspondence in OIM 11 g

    Hello
    I have a lot of data that must be loaded into the table of choice as Codekey and decode. How can I load the data in bulk instead of manually via console Design?

    Is it possible to do? No API IOM or any what SQL query

    Kind regards
    JS

    Here's what you need to get.

    psLookupCode - search name,
    psValue - Code key
    psDescriptivevalue - DecodeKey

    The rest can be empty.

    addLookupValue

    void addLookupValue (java.lang.String psLookupCode,
    java.lang.String psValue,
    java.lang.String psDescriptiveValue,
    java.lang.String psLanguage,
    java.lang.String psCountry)
    throws Thor.API.Exceptions.tcAPIException,
    Thor.API.Exceptions.tcInvalidLookupException,
    Thor.API.Exceptions.tcInvalidValueException,
    tcAPIException adds a new entry for the specified search

    Parameters:
    psLookupCode - the Code for the definition of research
    psValue - the value that will be stored in the database
    psDescriptiveValue - a descriptive version of the value to be added
    psLanguage - the language for the added entry. Leave blank to accept the default value (en)
    psCountry - country for the specified entry. Leave blank to accept the default (US)

    Throws: tcAPIException tcInvalidLookupException - thrown if the search Code is no tcInvalidValueException - thrown if the value cannot be added to the list of choices (because it's a double, etc.)

    M

  • inserting data into the table

    Hi all
    I use forms [32 bit] Version 6.0.8.24.1 (Production)
    Oracle Database 10g Release 10.2.0.1.0 - Production
    I have settings such as the (optional) emp_code and the year (mandatory field - four digits).
    Based on the setting that I have to get the detail of a table and these must be inserted at the other table with columns of additions (to hardcode the additional columns).
    To achieve this, I intend to get a cursor by selecting the required fields in the table by the way the where clause of the cursor parameters.
    by making a loop through the cursor I will insert the records in the other table.
    Here, the thing is that the data is going to be huge (since the year is the parameter).
    so my approach causes the performance issue.
    I heard that there is a different method of insetions
    can anyone suggest me the best way (performance wise) other than what I mentioned (if you are aware of)...

    Thank you...

    user13329002 wrote:
    Thanks for everyone.
    I have to take the data from the table as e_name, e_code, of the table and insert it into another table with some other values such as
    e_name, e_code, as well as I add 'n', 'o'.
    its something like

    insert into e_emp(emp_name,emp_code,emp_add,emp_status,emp_type)
    select e_name,e_code,e_add,'O','N')
    from e_table
    where e_date = Parameter.
    

    in other words, the values for Emp_status, emp_type I have no values in the e_table.so table and enter in e_table I have to hard code it.
    CAL I hard code as I mentioned in my statement example

    can someone clear me of the foregoing.

    Thank you...

    Published by: user13329002 on February 15, 2011 20:11

    Yes... You can hardcode the values for Emp_status, emp_type.

    SQL> CREATE TABLE e_emp(emp_code NUMBER(10),emp_status VARCHAR2(1),emp_type VARCHAR2(1));
    
    Table created.
    
    SQL> create table e_table as (select * from e_emp);
    
    Table created.
    
    SQL> INSERT INTO e_table(emp_code) VALUES('1111');
    
    1 row created.
    
    SQL> insert into e_table(emp_code) values('2222');
    
    1 row created.
    
    SQL> select * from e_table;
    
      EMP_CODE E E
    ---------- - -
          1111
          2222
    
    SQL> insert into e_emp(emp_code,emp_status,emp_type) (select emp_code,'0','N' from e_table);
    
    2 rows created.
    
    SQL> select * from e_emp;
    
      EMP_CODE E E
    ---------- - -
          1111 0 N
          2222 0 N
    
    SQL> 
    

    I hope this helps.

    Kind regards
    Claudy

  • Insert data into the table without using the insert or select the command

    Hello

    Is there anyway to insert data from one table to another table, without using insert, and then select the command in the same pattern.
    Note: the two tables have the same structure.

    ALTER table... Swap partition...

  • How to insert data into the initialization blocks

    I want to connect the user which connect to the obiee system. in the initialization, user blocks, we can get, but how to insert the date and user in the database is it in any way. Thanks in advance.

    The connection id is stored in the system USER session variable. You can use it to insert into the database in the initialization block.

    INSERT INTO tablename (username, date) values (': USER ', sysdate);

  • Insert data into the table particular

    Hello

    I have a requirement to insert data from table from Oracle 10 g to Oracle 9i table.
    The pom_code table should be filled with gr_product table based on a specific schema of codes - i.e. If POM Code corresponds to a specific model, then it must belong to a specific company.
    FROM :: Oracle 10g database
    
    gr_product
    pr_code varchar2(20 byte)
    pr_desc varchar2(80 byte)
    To :: Oracle 9i database
    
    pom_code
    code      varchar2(12 byte)
    desc      varchar2(100 byte)
    companyid Number
    1. All gr_product.pr_code with following pattern should go to pom_code.code and companyid =10
    
    a. <one digit><.><two digit><alphabet> ex code:  1.01A
    b. <one digit><.><two digit><alphabet><space><two alphabet> ex code: 1.01B ZF  
    
    2. All gr_product.pr_code with following pattern should go to pom_code.code and companyid =20
    a. <two digit><.><one digit><alphabet> ex code: 10.1A         
    b. <two digit><.><one digit><alphabet><space><two alphabet> ex code: 10.5A HR    
    
    3. All gr_product.pr_code with following pattern should go to pom_code.code and companyid =30
    a. <alphabet><.><two digit><alphabet>  ex code: B.42A
    b. <alphabet><.><two digit><alphabet><space><two alphabet> ex code: N.10B AT 
    Thank you
    Sandy

    Hello

    The CASE expression I posted earlier does what you want?
    If so, please mark the thread as "answered".
    If this isn't the case, after a complete script that people can run to recreate the problem and test their ideas. Includes TABLE of CASH and INSERT statements for some examples of data for all the tables, the results you want from these sample data and your request (or INSERT statement) using the CASE expression. Report where the code you posted does not have what you need and explain how to get good results in these places.

  • Insert data into the table from the flat Flie

    I have a flat file save in a directory on my server. I would like to read the data from the flat file and insert into a table on the stage. The flat file data as below
    01-02-03-04-05-06-07-08-09-10
    Suppose that Location_stage is my table and c1 is the column name.

    The data should be saved as follows


    Select * from location_stage

    C1
    ----
    01
    02
    03
    04
    05

    Any help will be appreciated.

    Thank you
    NS

    You can define an external table to read data from the file and a simple view to convert the string enclosed in columns:

    SQL> create directory ext_data as 'c:\';
    
    Directory created.
    
    SQL> create table ext_locations (
      2  loc varchar2(4000)
      3  )
      4  organization external
      5  (
      6  type oracle_loader
      7  default directory ext_data
      8  access parameters (
      9  records delimited by newline
     10  logfile ext_data:'ext_loc.log'
     11  fields terminated by ',' (loc)
     12  )
     13  location ('locations.txt')
     14  );
    
    Table created.
    
    SQL> select * from ext_locations;
    
    LOC
    -----------------------------------------------
    01-02-03-04-05-06-07-08-09-10
    
    SQL> create view location_stage as
      2  select regexp_substr(loc,'[^-]+',1,level) c1
      3  from ext_locations
      4  connect by level <= length(loc)-length(replace(loc,'-',''))+1;
    
    View created.
    
    SQL> select * from location_stage;
    
    C1
    ----------------------------------------------------------------------------
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    
    10 rows selected.
    

    Your data is stored only in the file...

    Max

  • How to insert data into the database of the fields that have already been assigned values?

    Hi all

    I'm sorry for the question, I'm still new to the OPS

    Here's the thing.

    I have 4 points messageTextInput in my page. each of these 4 field is associated with an attribute of the VO.

    3 of these items have their value already defined in the processRequest of the Commander, like this:

           
          OAMessageTextInputBean factureItem = (OAMessageTextInputBean)webBean.findChildRecursive("factureItem");
          factureItem.setValue(pageContext,pnumfacture);
    
           OAMessageTextInputBean actionItem = (OAMessageTextInputBean)webBean.findChildRecursive("actionItem");
           actionItem.setValue(pageContext,pidaction);
           
          Date sysDate = new Date(); 
           OAMessageDateFieldBean dateSystemItem = (OAMessageDateFieldBean)webBean.findChildRecursive("dateSystemItem"); 
             dateSystemItem.setValue(pageContext,sysDate);       
    

    The user must enter the value of the 4th field.

    I used the classic entry code for data as follows:

    in the AM, I added,

        public void insertRecord(){
        
        OAViewObject vo = getTraceVO1();
        OADBTransaction trans = getOADBTransaction();
        
            if (!vo.isPreparedForExecution()) 
              { 
                    vo.executeQuery(); 
              }
        
        TraceVORowImpl v_row;
        v_row = (TraceVORowImpl)vo.createRow();
        vo.insertRow(v_row);
       v_row.setNewRowState(v_row.STATUS_INITIALIZED);
      }
    public void apply()
       {
          getTransaction().commit();
        }
    

    In the processRequest of the Commander, I added:

          if (!pageContext.isFormSubmission())
            {        
             am.invokeMethod("insertRecord",null);       
            } 
    

    in the processFormRequest of the CO, I added:

          if(pageContext.getParameter("submitButtonItem")!=null){
                         
                am.invokeMethod("apply");
          throw new OAException("Trace Created successfuly",OAException.CONFIRMATION);
          }
    

    When I run my page, I get the error message saying that myVO not records, the records were removed or the view instance has been initialized incorrectly.

    Can someone please tell me what this means?

    Kind regards

    Afaf

    Afaf,.

    Please try to use the code below and see what happens:

    Replace the insertRecord in the AM method with this.

    Import oracle.jbo.domain.Number;

    public void insertRecord(String pnumfacture, String pidaction){ 
    
      System.out.println("been  in insert method");
      OAViewObject traceVO = getTraceVO1();
      OADBTransaction trans = getOADBTransaction(); 
    
      /*if (!traceVO.isPreparedForExecution())
      {
      traceVO.executeQuery();
      }
      */
      traceVO.setWhereClause(null);
      traceVO.setWhereClauseParams(null);
      traceVO.setWhereClause("1=2");
      traceVO.executeQuery();
    
      Number pidAction;
      try{
      pidAction = new Number(pidaction);
      }catch(Exception e) {}
    
      TraceVORowImpl traceVORow;
      traceVORow = (TraceVORowImpl)traceVO.createRow();
      traceVORow.setIdFacture(pnumfacture);
      traceVORow.setIdAction(pidAction);
      traceVORow.DateSysteme(this.getOADBTransaction().getCurrentDBDate());
      traceVO.insertRow(traceVORow);
      //traceVORow.setNewRowState(traceVORow.STATUS_INITIALIZED); 
    
      System.out.println("been  in insert method");
    } 
    

    Replace the processRequest of the second Commander by this:

    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    {
      System.out.println("first time in processForm of CO2");
      String pnumfacture = null;
      String pidaction = null; 
    
      super.processRequest(pageContext, webBean); 
    
      OAApplicationModule am = (OAApplicationModule)pageContext.getApplicationModule(webBean); 
    
      if(pageContext.getParameter("pnumfacture")!=null)
      {
      pnumfacture = pageContext.getParameter("pnumfacture").toString();
      } 
    
      if(pageContext.getParameter("pidaction")!=null)
      {
      pidaction = pageContext.getParameter("pidaction").toString();
      } 
    
        System.out.println("been  in processRequest before assign variables of CO2"); 
    
      System.out.println("pnumfacture :" + pnumfacture);
      System.out.println("pidaction :" + pidaction);
    
    /*assign values to the 3 fields*/
          /*
       Date sysDate = new Date();
          OAMessageTextInputBean factureItem = (OAMessageTextInputBean)webBean.findChildRecursive("factureItem");
          factureItem.setValue(pageContext,pnumfacture); 
    
          System.out.println("been  in processRequest after assign variables of CO2"); 
    
           OAMessageTextInputBean actionItem = (OAMessageTextInputBean)webBean.findChildRecursive("actionItem");
           actionItem.setValue(pageContext,pidaction); 
    
           OAMessageDateFieldBean dateSystemItem = (OAMessageDateFieldBean)webBean.findChildRecursive("dateSystemItem");
           if(dateSystemItem != null)
           {
             dateSystemItem.setValue(pageContext,sysDate);
           }
           */
        Serializable parameters[] = {pnumfacture, pidaction};
        Class paramTypes[] = {String.class, String.class};
    
           am.invokeMethod("insertRecord",parameters, paramTypes);
           System.out.println("been  in processRequest of CO2 after invokeMethod"); 
    
      }
    

    Let us know what happens.

    You can get an error that I have just change this in Textpad and may have syntax errors. If you can't fix those apply here.

    See you soon

    AJ

  • How to insert data into a BLOB column using sql

    Hi all

    How to insert data into the BLOB column directly using sql.
    create  table temp
    (
      a blob,
      b clob);
    
    SQL> /
    Insert into temp  values ('32aasdasdsdasdasd4e32','adsfbsdkjf') ;
                                      *
    ERROR at line 1:
    ORA-01465: invalid hex number
    
    Please help in this.
    Thank you
    Prakash P

    Insert into temporary values (UTL_RAW. CAST_TO_RAW ('32aasdasdsdasdasd4e32'), 'adsfbsdkjf');

  • Button insert data to the table

    Hello

    I use APEX 4.2.3 with XE, I try to insert data into the table using code below but nothing happen when I press the button, create this button like 'create a button to point to page'-> 'dynamic action'-> 'run pl/sql '.

    begin
    insert into dummy values('xx');
    commit;
    end;
    
    

    So to clarify, you have

    (1) created a button that "action" is "defined by the dynamic action.

    (2) created a dynamic action that executes pl/sql at the click on the button and you are pl/sql?

  • Insert data into the source of destinator Table

    Hi all

    Need to insert data in sample_table1 table xxc_source_table sample_table2

    create table xxc_source_table (DESCRIPTION varchar2 (10));

    Insert the table xxc_source_table values('A201.) ABC.4084.GR');

    create table sample_table1 (col_1 varchar2 (10), col_2 varchar2 (10), col_3 varchar2 (10), col_4 varchar2 (10));

    create table sample_table2 (col_1 varchar2 (10), col_2 varchar2 (10), col_3 varchar2 (10), col_4 varchar2 (10), moved_flag varchar2 (2));

    col_1 = A201

    col_2 = ABC

    col_3 = 4084

    col_4 = GR

    Note: Insert data into the col_1, the col_3, the col_4 of the xxc_source_table sample_table1

    (2) if the next (form xxc_source_table) data is exist in the sample_table2, and then set the moved_flag as Y in this column

    3) xxc_source_table has 17000 lines

    Thank you.

    Post edited by: Rajesh123 please do not consider cross the line message

    Hi Renon,

    Why you don't want substr and instr? For best performance, you should go with substr and instr instead of regexp_substr. However you asked me to provide the code instead of substr and InStr. Then try the below...

    INSERT ALL

    IN VALUES sample_table1 (col1, col2, col3, col4)

    IN sample_table2 VALUES (col1, col2, col3, col4, 'Y')

    SELECT REGEXP_SUBSTR (DESCRIPTION,'[^.] +', 1, 1) col1,.

    REGEXP_SUBSTR (DESCRIPTION,'[^.] +', 1, 2) col2.

    REGEXP_SUBSTR (DESCRIPTION,'[^.] +' 1, 3) col3.

    REGEXP_SUBSTR (DESCRIPTION,'[^.] +' 1, 4) col4

    OF xxc_source_table;

    Thank you

    Ann

Maybe you are looking for

  • Update iphone 6s at ios10, taken helmet collapsed work

    Hello I use iphone 6 s 64 GB of 5 months, recently I updated to ios10. After updating, my headphone jack is not working properly, my apple headphones work perfectly (checked with other devices), or even phone detects the headset, but they do not work

  • Wrong dialing code when connecting by WM5 with modem F3507g

    Hello everyone.Having trouble using Wireless Manager 5 with my GSM provider.Supplier: Active-KZ (I live in the Kazakhstan)They need to dial * 99 # for connection to the internet service GPRS/EDGE.By default, WM5 creates connection with number * 99 *

  • Q190 RAM upgrade?

    Hello I just got the Q190 (57312246), and I was wondering if I can improve his memory of 4 GB (current) to 8 GB? Some sites say yes, others say no. Thank you

  • write data to a txt file

    Hello. I use visa and serial Protocol in my vi n want to save the data from MCU in labview to txt file format which, in the data record in each row not each tab. I want to just save not given time. Meanwhile, I plot the data in the chart. I search in

  • BlackBerry Smartphones Oh PLEASE hellp me :(

    It's terribly frustrating. I want to download apps, and I get a pop up asking me to connect. So I open a session, using my e-mail address and password and I get 'invalid blah blah blah'... try again, same thing. Decide to click on 'forgot password' -