Insert into table1 from table1

Hello

I tried to insert into table - from select col1, col2, col3 from table b where
Table - b.change_dt between 't1d' and 'T2D.

can someone help me with the query

Thank you
insert into table-A from select col1,col2,col3 from table-b where
table-b.change_dt between 'dt1' and 'dt2'

you have an additional 'from', so it will be:

insert into table-A(col1,col2,col3) (select col1, col2, col3 from table b where)
Table - b.change_dt between 't1d' and "T2D")

Please, close your threads, try to clean up the forum.

Tags: Database

Similar Questions

  • Insert into select * from table 3. -is on the agenda by the needless?

    I've got an example of script, it will work for any table, so I don't bother with the full ddl.

    ----------------------------------------------------------------------------
    create table test in select * from hotels where 1 = 2;

    Insert into test select * from Hotels by city;

    Select the city from the trial;

    -drop table test is serving;
    -----------------------------------------------------------------------------

    The amazing thing is, that the city is ordered alphabetically,
    but you would say it is that an operation order is irrelevant.

    Any ideas on that?

    This will still work?

    Edited by: FourEyes on December 8, 2008 22:55

    Edited by: FourEyes on 8 December 2008 22:56

    Edited by: FourEyes on 8 December 2008 22:56

    Hello

    The [SQL Oracle 10 language reference | http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9014.htm#sthref9371] manual says:

    «In regards to the ORDER BY clause from the subquery in the DML_table_expression_clause, you place your order is guaranteed only for the inserted rows and only within each extension table.» Orders new lines with regard to existing lines is not guaranteed. »

  • Find items, that those containing 'insert into a table.

    Hi, I have a table, say T, and I want to know what object in my database insert record in table T. What is SQL? TX in advance.

    Maybe something like

    with x as
     (select '   /* comment */ insert ' || chr(13) || ' /*+ APPEND */ into ' || chr(13) || 't values(' text
        from dual
      union
      select '   /* comment */ insert ' || chr(13) || ' /*+ APPEND */ into ' || chr(13) || 'table1 values(' text
        from dual)
    select *
      from x
     where regexp_like (text, '^.*insert.*into.*t\W', 'cn');
    

    that also avoids picking up 'insert into table1. I ' ts not perfect but should work in most cases. I would be interested
    see if someone can come with a relentless example that would always pick up the required
    string and never pick up a false positive.

    Of course, I forget what user_source distinguish the source lines in any case - scrub as well as.

    Published by: Paul Horth on February 23, 2012 00:55

  • Insert into another table through dynamic suite

    Hello


    I need to insert data from one table to the other dynamic thereafter. The reason we use where condition can vary in the select statement. Can someone tell me the logic to use


    the sql statement is like that

    INSERT INTO table1

    SELECT * FROM table2 WHERE condition


    the condition can vary as because it must come forward


    Any ideas will be greatly appreciated


    Thank you
    Martine

    Martine wrote:
    Hello

    I need to insert data from one table to the other dynamic thereafter. The reason we use where condition can vary in the select statement. Can someone tell me the logic to use

    the sql statement is like that

    INSERT INTO table1

    SELECT * FROM table2 WHERE condition

    the condition can vary as because it must come forward

    Any ideas will be greatly appreciated

    Thank you
    Martine

    I advise generally live by using dynamic SQL, because it is difficult to develop, hard to debug, hard to maintain and very difficult to resolve. He peut seem reasonable in the situation you described, but think first about the other possibilities. If you have only two or three variants, it is probably easier to use IF and INSERTs hard-coded logic.

    If you must use dynamic SQL build the SQL text and use EXECUTE IMMEDIATE to do INSERTIONS and SO logical to concatenate the WHERE clause as necessary, something like

      v_text_c := 'insert into my_table(col1)'||chr(13)||
        'select col1'||chr(13)||
        '  from my_table2'||chr(13)'||
      ' where 1 = 1';
      if (whatever) then
        v_text_c := v_text_c||'  and col2 = 'whatever');
    end if;
    

    ' WHERE 1 = 1' is a placeholder for any or any other predicates. Chr (13) is a line break to make the generated SQL code readable appears.

    I find it also useful to create a table with a column CLOB to put the SQL code generated for future reference of error handling.

    Good luck!

  • insert into a final table based on a condition

    Hello
    create table table1(invoice_number varchar2(4), covg_date date, employee_number varchar2(5),
     service_option varchar2(2), FEES VARCHAR2(5), AMOUNT NUMBER(9,2));
     
    insert into table1 values('1','01-JUL-2011','11','8','F1,F2',100);
    insert into table1 values('2','01-JUL-2011','12','2','F1,F2',110);
    insert into table1 values('3','01-JUL-2011','13','9','F1,F2',120);
    insert into table1 values('4','01-JUL-2011','14','3','F1,F2',130);
    commit;
    
    create table table2(invoice_number varchar2(4), covg_date date, employee_number varchar2(5), 
    service_option varchar2(2),FEES VARCHAR2(5), AMOUNT NUMBER(9,2));
    
    insert into table2 values('1','01-JUL-2011','11','88','F1,F2',100);
    insert into table2 values('2','01-JUL-2011','12','2','F1,F2',110);
    insert into table2 values('3','01-JUL-2011','13','9','F1,F2',122);
    insert into table2 values('4','01-JUL-2011','14','3','F1',130);
    insert into table2 values('4','01-JUL-2011','15','3','F1',130);
    commit;
    
    create table final_table(insert_type varchar2(1),invoice_number varchar2(4), covg_date date, employee_number varchar2(5), 
    service_option varchar2(2),FEES VARCHAR2(5), AMOUNT NUMBER(9,2));
    We need to insert in final_table based on the differences between table1 and table2. The condition for this is:
    For example: for a given employee number (11) for a covg_date(July-2011) given, if there is at least a difference in any value of the column that is in this case the service_option (8.88)...
    I need to insert record from table1 into final_table with insert_type as 'ELDERS '.
    and insert record of table2 in final_table with insert_type as 'NEW '.

    Same employee number 14, there is a difference between column fees and I should insert as in the example above
    Same employee number 13, there is a difference between the column AMOUNT and I must insert as in the example above.

    For example employee number 15, there is no record in table1 but found in table2 and which will be inserted as it is...

    What my idea was to go through separate employee_number, covg_date in table1 and check every value in table2 to the same disease and insert into final_table...

    But if there is a better option as insertion directly using select clause or a sort of direct insertion without loop...

    Thanks for the help in advance

    Maybe a modified version of something like this:

    INSERT INTO final_table
    ( insert_type
    , invoice_number
    , covg_date
    , employee_number
    , service_option
    , fees
    , amount
    )
    SELECT insert_type
         , invoice_number
         , covg_date
         , employee_number
         , service_option
         , fees
         , amount
    FROM   (
         SELECT invoice_number
              , covg_date
              , employee_number
              , service_option
              , fees
              , amount
              , 'OLD' AS insert_type
         FROM   table1
         MINUS
         SELECT invoice_number
              , covg_date
              , employee_number
              , service_option
              , fees
              , amount
              , 'OLD' AS insert_type
         FROM   table2
         UNION ALL
         SELECT invoice_number
              , covg_date
              , employee_number
              , service_option
              , fees
              , amount
              , 'NEW' AS insert_type
         FROM   table2
         MINUS
         SELECT invoice_number
              , covg_date
              , employee_number
              , service_option
              , fees
              , amount
              , 'NEW' AS insert_type
         FROM   table1
           )
    WHERE  employee_number = :emp_number
    AND    covg_date       = TO_DATE(:date_string,'MM/DD/YYYY')
    ;
    
  • missing parenthesis in insertion into separate lines select the table from the other table

    Hello

    could you help me with the following question?

    I have the following tables

    CREATE TABLE table1)

    ID varchar (12),

    col2 varchar (10),

    COL3 varchar (10),

    level varchar (10))

    CREATE TABLE table2)

    Id2 varchar (12)

    A varchar (10),

    B number (1)

    CONSTRAINT PRIMARY KEY PK (ID2, is));

    INSERT INTO table2 (ID2, A, B) SELECT ID, col2

    MAX (CASE WHEN level = "level 1" then 1

    level = 'level 2' then 2

    Level = 3 then 'niveau3') as colIN3)

    FROM table1 GROUP BY ID2, a.;

    the first table have duplicates as follows:

    Id2 COL2 COL3 level

    A1 pepe football level1

    A1 pepe football level2

    A1 pepe football level1

    A1 pepe basket level2

    A1 pepe pingpong level3

    the output should be selected with unique key (ID2, col3) lines and the level must be the greatest.

    Id2 COL2 COL3 level

    A1 pepe football level2

    A1 pepe basket level2

    A1 pepe pingpong level3

    The output of the script tells me the following messages:

    -lack of right parenthesis referring to the max function.

    Thanks adavance.

    Kind regards

    Hello

    Remember the ABC's of the GROUP BY:

    When you use a GROUP BY clause or in an aggregate function, then all in the SELECT clause must be:

    (A) a ggregate function,

    (B) one of the expressions "group By."

    (C) adding to C, or

    (D) something that Depends on the foregoing.  (For example, if you "GROUP BY TRUNC (dt)", you can SELECT "TO_CHAR (TRUNC (dt), 'Mon - DD')").

    To ask him, there are 5 columns in the SELECT clause.  The last one is a function MAX (...); It is an aggregate, is not serious.

    The first 2 columns are also named in the GROUP BY clause, so that they are well.

    The other 2 columns, country and internal_Id do not match any of the above categories.  These 2 columns cause the error.

    There are many ways to avoid this error, each producing different results.  You could

    • remove these 2 columns in the SELECT clause
    • Add these 2 columns in the GROUP BY clause
    • use the aggregation such as MIN, 2-column functions
    • remove the country from the SELECT clause and add internal_id to the GROUP BY clause
    • remove the internal_id from the SELECT clause, and add countries to the GROUP BY clause
    • ...

    What are the results you want?

    Whenever you have a question, please post a small example of data (CREATE TABLE and INSERT statements) for all the tables involved, so people who want to help you can recreate the problem and test their ideas.  Also post the results you want from this data, as well as an explanation of how you get these results from these data.

    Always say what version of Oracle you are using (for example, 11.2.0.2.0).

    See the FAQ forum: https://forums.oracle.com/message/9362002

  • Insert into MDQ_OLD select * from table (lt_monitorMdq);

    I'm trying to insert into a table that has only a single column, which is a column of a user defined type (UDT). The UDT is nested, that is one of the attributes of the UDT is an another UDT.

    I aim to insert into the table like this pseudo-code:

    INSERT INTO T1 SELECT * FROM THE UDT;

    CREATE TABLE MDQ_OLD (myMDQ UDT_T_MONITOR_MDQ)

    NESTED TABLE myMDQ

    (T1_NEW) ACE STORE

    THE NESTED TABLE MONITOR_MDQ_PRIM_RIGHTS

    STORE AS T2_NEW);

    The MONITOR_MDQ_CLI procedure. Read below returns the parameter lt_monitorMdq which is a UDT type as announced. The statement "insert into select MDQ_OLD * table (lt_monitorMdq);" fails, while the second insert statement works.

    Is it possible to get the first statement of work?

    I'm on Oracle 11 g 2.

    DECLARE

    lt_monitorMdq UDT_T_MONITOR_MDQ;

    BEGIN

    MONITOR_MDQ_CLI. Reading (TRUNC (SYSDATE),

    TRUNC (SYSDATE),

    NULL,

    NULL,

    "MILLION BTU.

    lt_monitorMdq); -Note lt_monitorMdq is an OUT parameter

    -This insert does not work

    Insert into MDQ_OLD select * from table (lt_monitorMdq);

    BECAUSE me in 1... lt_monitorMdq.count

    LOOP

    Dbms_output.put_line ('lt_monitorMdq: ' | .mdq_id lt_monitorMdq (i));

    -This integration works

    INSERT INTO MDQ_OLD (MYMDQ)

    VALUES (UDT_T_MONITOR_MDQ (UDT_R_MONITOR_MDQ)

    lt_monitorMdq (i) .gasday,

    1,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    () UDT_T_MONITOR_MDQ_PRIM_RIGHT

    () UDT_R_MONITOR_MDQ_PRIM_RIGHT

    1,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    NULL,

    (NULL)));

    END LOOP;

    END;

    have you tried:

    INSERT INTO MDQ_OLD (myMDQ) VALUES (lt_MonditorMDq);

    curiosity:

    Is there a particular reason, why you have created a table with a single column of type UDT instead of:

    CREATE TABLE... OF UDT_T_MONITOR_MDQ;

    I can tell you from experience that using a nested table, you can easily query the data in the nested table.

    MK

  • INSERT INTO... SELECT FROM XMLTABLE()

    I'm trying to insert using a query to 11.2.0.3.  The table is defined as follows:

    CREATE TABLE book_master AS TABLE OF XMLTYPE XMLTYPE STORE AS SECUREFILE BINARY;
    

    The insert statement is structured in this way:

    INSERT INTO book_master
    SELECT
        t.invt_data
    FROM
        XMLTable(
            XmlNamespaces('http://www.mrbook.com/InventoryData' AS "invtdata", 
                      'http://www.mrbook.com/book' AS "book"),  
            '/book:BOOKS'
        PASSING ?
        COLUMNS
             invt_data XMLTYPE PATH 'invtdata:INVT_DATA'
        ) t;
    

    The parameter '?' is passed through JDBC.

    When I run the present, I get the error:

    Error report:
    SQL Error: ORA-19010: Cannot insert XML fragments
    19010. 00000 -  "Cannot insert XML fragments" 
    *Cause:    XML fragments got from extractNode cannot be inserted into the database.
    *Action:   Convert the fragment into a proper XML document before insertion.
    

    Is it possible to cast the XMLTYPE returned by XMLTable in a comprehensive document, instead of a node?

    Is it possible to cast the XMLTYPE returned by XMLTable in a comprehensive document, instead of a node?

    Well, the error message is pretty clear: you are trying to insert fragments, not a document (only root of content). It is not allowed.

    I guess that the query returns several items INVT_DATA, right?

    SQL > INSERT INTO book_master

    2. SELECT

    3 t.invt_data

    4

    (5) XMLTable

    6 ' / BOOKS»

    7 PASSAGE xmltype ('"")

    8 COLUMNS

    9 invt_data XMLTYPE PATH 'INVT_DATA '.

    (10) t;

    INSERT INTO book_master

    *

    ERROR on line 1:

    ORA-19010: cannot insert XML fragments

    We must build a document by encapsulating the fragments returned in a single root element.

  • How to insert into a GLOBAL TEMPORARY TABLE and get the data from it?

    The requrement is
    Split the string ENTRY point on the base and store it in a Collection. And the values of the collection will be stored in a global temporary table. Then, I'm updating some other table based on the data from the temporary table.

    There is in fact no error message. But there is no data in the temporary table and also no change in the update statement

    First of all, I'm creatiing a global temporary table only once outside the procedure.

    CREATE GLOBAL TEMPORARY table GLt (data_element number)


    create or replace procedure test_proc (p_in_string VARCHAR2) is
    i the number: = 0;
    number of POS: = 0;
    CLOB lv_str: = p_in_string;
    p_delim VARCHAR2 (1): = ', ';

    TYPE t_array IS TABLE OF VARCHAR2 (20) INDEX directory.
    t_array channels;

    BEGIN

    -cutting of string input and store in the strings (i) collection

    POS: = instr (lv_str, p_delim, 1, 1);
    WHILE (pos! = 0) LOOP
    i: = i + 1;
    Strings (i): = substr(lv_str,1,pos-1);
    lv_str: = substr (lv_str, pos + 1, length (lv_str));
    POS: = instr (lv_str, p_delim, 1, 1);
    IF pos = 0 THEN
    Strings (i + 1): = lv_str;
    END IF;
    END LOOP;

    run immediately "drop table TWG;
    run immediately ' CREATE GLOBAL TEMPORARY table (data_element number) TWG on commit preserve rows ";

    FORALL i in strings.first... Strings.Last
    INSERT INTO VALUES TWG (strings (i));
    commit;

    Update first_tbl set PIN is "XXX" where first_col in (select data_element from TWG);.
    commit;

    END test_proc;

    Published by: cedric b on January 25, 2013 12:59

    Remove the two execute immediate line. They are wrong.

    And then use the table in your code that you created at the beginning. The name is GLT.
    And delete the first commit. This validation would empty the temporary table of GLT.

    You get an error? Or it does not work as expected?

    Also, show how you call the procedure.

    Published by: Sven w. January 25, 2013 14:45

  • Inserting an image from a URL into a BLOB

    Hi all

    As it says in the title, I need a PL/SQL procedure to insert an image from the web URL into a BLOB column.

    How can I do?

    Thanks in advance for your help.

    Max

    one missing COMMIT after the INSERT statement.
    Other than that, it works perfectly.

  • Select values from the db1 table and insert into the DB2 table

    Hello

    I have three databases oracle running in three different machines. their ip address is different. among the DB can access databases. (means am able to select values and insert values into tables individually.)

    I need to extract data from the DB1 table (ip say DB1 is 10.10.10.10 and the user is DB1user and the table is DB1user_table) and insert the values into DB2 table (say ip DB2 is 11.11.11.11 and the user is DB2user and table DB2user_table) of DB3 that is to have access to the two IPs DB.

    How do I do this

    Edited by: Aemunathan on February 10, 2010 23:12

    Depending on the amount of data must be moved between DB1 and DB2, and the frequency at which this should happen, you might consider the SQL * COPY more control. I think it's very useful for one-off tasks little, so I can live within its limits of the data type. More http://download.oracle.com/docs/cd/E11882_01/server.112/e10823/apb.htm#i641251.

    Change some parameter of sqlplus session are almost mandatory in order to get decent transfer rates. Tuning ARRAYSIZE and COPYCOMMIT can make a huge difference in flow. LONG change may be necessary, too, depending on your data. The documentation offers these notes on use:

    To activate the copy of data between Oracle and databases non-Oracle, NUMBER of columns is replaced by DECIMAL columns in the destination table. Therefore, if you are copying between Oracle databases, a NUMBER column with no precision will become a DECIMAL column (38). When copying between Oracle databases, you must use SQL commands (CREATE TABLE AS and INSERTION), or you must make sure that your columns have a specified precision.

    SQL * the VALUE LONGER variable limits the length of the LONG column you are copying. If all LONG columns contain data exceeds the value of LONG, COPY truncates the data.

    SQL * Plus performs a validation at the end of each successful COPY. If you set the SQL * variable more COPYCOMMIT DEFINED to a value positive n, SQL * Plus performs a validation after copying all lots n of records. The SQL * Plus ARRAYSIZE variable SET determines the size of a batch.

    Some operating environments require that the service names be placed between double quotes.

    From a SQL * Plus term on DB3, can resemble the command to move all content from my_table in DB1 to the same table in DB2

    COPY from user1/pass1@DB1 to user2/pass2@DB2 -
    INSERT INTO my_table -
    USING select * from my_table
    

    Note the SQL code * more line-continuation character ' - '. It is used to escape the newline character in a SQL * Plus command if you do not have to type all on one line. I use it all the time with this command, but I can't locate the documentation on that right now. Maybe someone else can put their finger on it.

    There are other ways to accomplish what the command copy and it is not without its quirks and limitations, but I find that there is usefulness in an Oracle Toolbox.

  • reading data from a variable, separated by "|" and insert into the table

    Hi experts,

    I have a file on FTP and I read the file. Now what I have to do is to separate the data and insert them into a table. I have already created the table with the required fields.

    How can I get data from str?

    code below

    declare
    File1 UTL_FILE. TYPE_DE_FICHIER;
    VARCHAR2 (1000) filename: = "GTECHFILES";
    Long str;
    Start
    File1: = UTL_FILE. FOPEN (filename, 'agent_dump_csv.rep', 'r', 32767);
    loop
    UTL_FILE. GET_LINE (File1, str);
    -dbms_output.put_line (' value is :'|| to_char (STR));
    end loop;
    UTL_FILE. FCLOSE (file1);
    exception
    When no_data_found then
    dbms_output.put_line ("END OF FILE");
    UTL_FILE. FCLOSE (file1);
    while others then
    UTL_FILE. FCLOSE (file1);
    dbms_output.put_line (' ERROR: ' |) SQLCODE |': ' | SQLERRM);
    end;

    You must use ' \ [^ |] +' like regexp:

    SQL> create table mytab (a varchar2(20), b varchar2(20), c varchar2(20));
    
    Tabella creata.
    
    SQL> declare
      2  str varchar2(100):= 'qwureer|iftsdfsuif|123134';
      3  begin
      4    insert into mytab
      5      values (regexp_substr(str,'[^|]+',1,1),
      6              regexp_substr(str,'[^|]+',1,2),
      7              regexp_substr(str,'[^|]+',1,3));
      8  end;
      9  /
    
    Procedura PL/SQL completata correttamente.
    
    SQL> select * from mytab;
    
    A                    B                    C
    -------------------- -------------------- --------------------
    qwureer              iftsdfsuif           123134
    

    Max
    [My Italian blog Oracle | http://oracleitalia.wordpress.com/2010/01/17/supporto-di-xml-schema-in-oracle-xmldb/]

  • INSERT INTO table (columns...) with table_tmp in select... ...

    Hi guru,.

    Is less than a valid SQL | Statement of PLSQL? or several instructions and what it does?

    insert into table (col1, col2, col3, col4)
    with table_tmp as
    (select ccol1, ccol2, ccol3, ccol4, ccol5, ccol6
    from table1, table2 t2 t1
    where t1.id = t2.id
    and t2.start > sysdate()
    )
    Select tcol1, tcol2, tcol3, tcol4
    of table_tmp tt1, table3 t3
    where tt1.id = tt3.id;

    I checked the SQL quick reference card and don't see anything similar to this... I wonder where I can find a better book of reference for the syntax.

    Thanks in advance
    KH

    user5885318 wrote:
    Is less than a valid SQL | Statement of PLSQL? or several instructions and what it does?

    It inserts data into the table

    insert into table (col1, col2, col3, col4)

    (ok, ignoring the fact that you can't have a table named table)

    using the select statement located below

    with table_tmp as
    (select ccol1, ccol2, ccol3, ccol4, ccol5, ccol6
    from table1, table2 t2 t1
    where t1.id = t2.id
    and t2.start > sysdate()
    )
    Select tcol1, tcol2, tcol3, tcol4
    of table_tmp tt1, table3 t3
    where tt1.id = tt3.id;

    I checked the SQL quick reference card and don't see anything similar to this... I wonder where I can find a better book of reference for the syntax.

    SQL reference documentation contains the complete syntax for Oracle SQL, so how can you find a better reference for the syntax. I think your concept to better is all simply because you are not familiar with things and don't know where to find things. SQL is a huge beast, so you cannot expect to find things very quickly in all cases, especially if you don't really know what you are looking for.

    I'm guessing you are struggling to find information about the clause "WITH"?

    It is called subquery factoring and lie under the SELECT statement in the SQL reference:

    http://download.Oracle.com/docs/CD/B19306_01/server.102/b14200/statements_10002.htm#i2161315

    An equivalent statement without the WITH clause (using your insert as a base statement)...

    insert into table(col1, col2, col3, col4)
    select tcol1, tcol2, tcol3, tcol4
    from (select ccol1, ccol2, ccol3, ccol4, ccol5, ccol6
          from table1 t1, table2 t2
          where t1.id=t2.id
          and t2.start > sysdate()
         ) tt1
         , table3 t3
    where tt1.id=tt3.id;
    

    The done WITH clause takes the subquery in the main query. This is useful if the same subquery is needed more than once in the main query.

  • Attempt to create run time (dynamic) table and insert the data in this... The entrance is a flat file (txt file) which has the numbers and strings... I'm trying to convert them to a string and insert into the table. It is a matter of urgency for me please

    create or replace procedure Dynamic_Table AS

    iVal VARCHAR2 (32);

    iTemp varchar (200): = ";

    sql_stmt VARCHAR2 (200);

    l_file1 UTL_FILE. TYPE_DE_FICHIER;

    l_file utl_file.file_type;

    BEGIN

    l_file1: = UTL_FILE. FOPEN ('TEST', 'dinput.txt', 'R');

    EXECUTE IMMEDIATE ' CREATE TABLE baseline (Item_ID varchar2 (32))';

    Loop

    BEGIN

    UTL_FILE. GET_LINE (l_file1, iVal);

    EXECUTE IMMEDIATE ' insert into baseline values (: ival) "using ival;

    EXCEPTION

    WHEN No_Data_Found THEN EXIT;

    While some OTHER THEN dbms_output.put_line (SQLERRM); * /

    END;

    end loop;

    END;

    You are approaching this the wrong way.  Create an external table based on the file.  External tables are CSV, fixed width data in a queryable table.

    You will need to create an oracle directory to put the file in (MY_ORA_DIR) I leave it for you to do, and then perform the following...

    create table BASELINE)

    ITEM_ID varchar2 (32)

    )

    EXTERNAL ORGANIZATION

    (

    TYPE ORACLE_LOADER

    THE DEFAULT DIRECTORY MY_ORA_DIR

    ACCESS SETTINGS

    (

    RECORDS DELIMITED BY NEWLINE

    LOGFILE "dinput.log".

    BADFILE "dinput.bad."

    NODISCARDFILE

    FIELDS

    (

    ITEM_ID

    )

    )

    LOCATION ("dinput.txt")

    )

    REJECT LIMIT UNLIMITED

    /

    All the dubious records appear in dinput.bad. Dinput.log will give you information.

    External tables are read-only, so once you set up your file, you can create editable as a normal table.

    create table ITABLE_EDITABLE as

    Select * from BASELINE

    /

    Work done, a few lines of code.

  • "missing the SELECT keyword" error during an insert into the temporary table using the blob value

    I'm trying to insert into an oracle temp table using select that retrieves data from a blob field but I get the error: "lack the SELECT keyword.

    How we store temporary in oracle result when we make this type of operation (extraction of data in fields and try to load them into a separate table on the fly.?)

    with cte as)

    Select user_id, utl_raw.cast_to_varchar2 (dbms_lob.substr (PREFERENCES)) as USER my_blob

    )

    create table new_table as

    SELECT user_id,EXTRACTvalue(xmltype(e.my_blob),'/preferences/locale') regional settings

    E ETC

    ----------------------------------------------------------------------------------

    BLOB data - value - which is

    <? XML version = "1.0" encoding = "ISO-8859-1" ?>

    - < Preferences >

    < time zone > America/New_York < / > zone

    < displayscheduleinusertimezone > Y < / displayscheduleinusertimezone >

    < local > Spanish < /locale >

    < DateFormat > JJ/mm/aaaa < / DateFormat >

    < timeFormat > hh: mm aaa < / timeFormat >

    < longformat > Long_01 < / longformat >

    < doubleformat > Double_01 < / doubleformat >

    < percentformat > Percentage_01 < / percentformat >

    < currencyformat > Currency_01 < / currencyformat >

    < / Preferences >

    A WITH clause that must immediately precede the SELECT keyword:

    SQL > create table t:

    2 with the o as (select double dummy)

    3 select * West longitude;

    Table created.

Maybe you are looking for