Global temporary table in PL/SQL with XML

Hello

I have the impression that it is something strange or maybe I'm missing something basic.

Step 1: Create a global Temp table that should not be specific transaction.

create a global temporary table Temp01

(

NUMBER OF TICKET_ID

, Varchar2 (10) of the REGION

NUMBER OF THE YEAR

, CO_ID VARCHAR2 (10)

) ON COMMIT DELETE ROWS.

Step 2:

My XML that goes as a parameter to a new function.

< TICKET >

< TICKET_ID > 38498051 < / TICKET_ID >

the USA < REGION > < / REGION >

< YEAR > 2014 < / YEAR >

XYZ123 < CO_ID > < / CO_ID >

< / TICKET >

Step 3: Create a Stand Alone function:

-drop function aagarwal.wr_creation;

create or replace FUNCTION XML_FUNC

(

ret_msg out varchar2,.

p_xmlval IN varchar2

)

RETURN varchar2

is

l_xmlval varchar2 (4000): = p_xmlval;

V_CO_ID VARCHAR2 (10);

V_CODE VARCHAR2 (10);

BEGIN

BEGIN

INSERT INTO Temp01

(

TICKET_ID,

REGION,

BLEACHED,

CO_ID

)

SELECT

EXTRACTVALUE (XmlType (p_xmlval), "/ TICKET/TICKET_ID ') ID,.

EXTRACTVALUE (XmlType (p_xmlval), "/ TICKET/REGION") REGION.

EXTRACTVALUE (XmlType (p_xmlval), "/ TICKET per YEAR"),.

EXTRACTVALUE (XmlType (p_xmlval), "/ TICKET/CO_ID ') CO_ID

FROM DUAL;

ret_msg: = 'SUCCESS';

-SELECT CO_ID IN V_CO_ID of aagarwal. TEMP_STAGE_WR;

-return ret_msg;

EXCEPTION

WHILE OTHERS THEN

ret_msg: = sqlerrm;

Return ret_msg;

END;

BEGIN

SELECT CO_ID INTO V_CO_ID FROM Temp01;

/ * MERGE IN the site is

With the HELP of aagarwal. TEMP01 T

WE (T.co_id = se.code AND se.type_nm = ' TYPE' and se.src_nm = T.region)

WHEN NOT MATCHED THEN

INSERT (ID, SRCNM, CODE, TYPENM)

VALUES (SHARED_SEQ. NEXTVAL, T.region, T.co_id, 'TYPE');

-commit; */

return ret_msg | "ACE" | v_co_id;

END;

END;

/

Fact - created function.

NOTE: MERGE statement is blocked and if the function was created in sweetness.

Step 4: Call the function

declare

l_out varchar2 (50);

l_outr varchar2 (50);

p_xml XMLTYPE.

Start

l_outr: = XML_FUNC (l_out, ' < TICKET >)

< TICKET_ID > 38498051 < / TICKET_ID >

the USA < REGION > < / REGION >

< YEAR > 2014 < / YEAR >

XYZ123 < CO_ID > < / CO_ID >

(< / TICKET > ');

dbms_output.put_line (l_outr);

end;

/


Step 5: Check the value being inserted into the temporary Table:


Select * from temp01;


So far so good.

THE PROBLEM:

Now I want to tweek the XML_FUNC function above by uncommenting MERGE statement, which brings me to an error that is not differentiable:

I.e. PL/SQL: ORA-00942: table or view does not exist in line on MERGE pointing to Temp01 statement.

NOTE: I tested this Merge statement explicitly (as long as the execution of Stand Alone and also by calling via anonymous block PLSQL) and its absolutely perfect work. And SITE table exist.

PS: I would be grateful, if there is a better way to write this code? I'm not a regular PLSQL developer and so badly can write the code of practice.

Kind regards

AAG.

Using 11.2.0.3:

Owner of all these three objects is DBA.

Are you sure?

After the release of:

Select object_name, object_type

of object

where object_name in ('TEMP01', 'SITE', 'XML_FUNC');

You must grant the explicit right to select on the table for the owner of the function if the owners are different.

This works as expected for me (user DEV has all 3 items):

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

Logged in as dev

SQL >

SQL > create a global temporary table Temp01)

NUMBER OF TICKET_ID 2

3, Varchar2 (10) of the REGION

4, NUMBER OF THE YEAR

5, CO_ID VARCHAR2 (10)

6)

7. ON COMMIT DELETE ROWS.

Table created

SQL >

SQL > create table site)

Identification number 2

3, srcnm varchar2 (10)

4, code varchar2 (10)

5, typenm varchar2 (10)

6  );

Table created

SQL > create the sequence shared_seq;

Order of creation

SQL >

SQL >

SQL > create or replace FUNCTION XML_FUNC)

2 p_xmlval IN varchar2

3)

4 RETURN varchar2

5 is

6 l_xmlval xmltype: = xmltype (p_xmlval);

7. START

8

9 INSERT INTO Temp01

(10)

TICKET_ID 11,

REGION 12,

13 YEARS,

CO_ID 14

15)

16. SELECT ID EXTRACTVALUE(l_xmlval, '/TICKET/TICKET_ID'),

17 EXTRACTVALUE(l_xmlval, '/TICKET/REGION') REGION,

18 EXTRACTVALUE (l_xmlval, ' / TICKET per YEAR ') YEAR.

19 EXTRACTVALUE(l_xmlval, '/TICKET/CO_ID') CO_ID

20 FROM DUAL;

21

22. MERGE IN site

23. WITH THE HELP OF TEMP01 T

(24)

25 T.co_id = se.code

26 AND se.typenm = 'TYPE '.

27 and se.srcnm = T.region

28)

29 WHEN NOT MATCHED THEN

30 INSERT (ID, SRCNM, CODE, TYPENM)

31 VALUES (SHARED_SEQ. NEXTVAL, T.region, T.co_id, 'TYPE');

32

33 return "SUCCESS";

34

35 END;

36.

Feature created

SQL >

SQL >

SQL > set serveroutput on

SQL >

SQL >

SQL > declare

2

3 l_outr varchar2 (50);

4

5. start

6

7 l_outr: = XML_FUNC (')

8 38498051

9 USA

10 2014

11 XYZ123

12    ');

13

14 dbms_output.put_line (l_outr);

15

16 end;

17.

SUCCESS

PL/SQL procedure successfully completed

SQL > select * from site;

ID CODE TYPENM SRCNM

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

TYPE 1 USA XYZ123

Tags: Oracle Development

Similar Questions

  • SELECT the data inserted into a global temporary Table in a stored proc

    A stored procedure is run from Oracle SQL Developer to insert data into a global temporary table. A SQL (in Oracle SQL Developer) worksheet is open to run a SELECT query to retrieve the data from the temporary table overall which was populated in the stored procedure. No row is returned. I guess it's because the stored procedure and the SELECT statement executed in different sessions.

    Is it possible to run the stored procedure in Oracle SQL Developer and then execute a select statement on the temporary table overall which was filled in the stored procedure by using the same connection so that the data can be extracted?

    I use version 1.5.1 build HAND-5440 of Oracle SQL Developer.

    In a worksheet, do something like

    Start
    insert_proc;
    end;

    Select * from my_temp_table;

    Place the cursor on each statement in turn and Press f9 (where it all began... the end is a single statement.

  • Working with temporary tables in PL/SQL processes

    So I'm trying to write a PL/SQL process and I have some difficulty. Here's what I do:

    -Create temporary tables
    -Put the data in them
    -Use the data in temporary tables to fill the main status table
    -Remove temporary tables

    I'm running into some problems when I try to create the tables. If I do as I would in SQL Server:

    SELECT field1, Field2
    IN TempTable1
    Of


    Then, I get an error saying that there is no such thing as TempTable1. If I say:

    CREATE TABLE TempTable1 AS
    SELECT field1, Field2
    Of


    Then I get "found CREATE, Expecting CASE or another statement." I know that to truncate or remove tables in a PL/SQL, I use EXECUTE IMMEDIATE. I do the same thing for the creation of a table? If this is the case, how can I use run immediately on a query with apostrophe inside multi-line?

    Thank you!

    Use of temporary tables in Oracle is different from MS Sql Server.
    In Oracle, you create tables Temp the same way you would normally create a permanent table.
    Search syntax "create a global temporary table.
    Oracle global temporary tables are visible to all connections, but don't share all the data.
    The data are visible only for connections that introduced the data and are removed on commit / rollback, or when the connection ends.
    So Structure is permanent, data is temporary and exclusive to a single connection.

    If your process should look like this:

    Create global temporary tables - once - at the same time, you create all of the other tables in your system.

    -Fill the temporary tables.
    -use the data in temporary tables to fill the main report table
    -remove the data from the temporary tables.

    Information on the Temp in Oracle tables:
    http://download.Oracle.com/docs/CD/B19306_01/server.102/b14231/tables.htm#sthref2213

    HTH
    Thomas

  • Need help with a global temporary table

    Can someone please help, the following line of code:

    CREATE TEMPORARY TABLE global tbl_bulknodes_temp (obt_uuid VARCHAR2) ON COMMIT DELETE ROWS

    Yeilds the following error running in SQL and PL/SQL

    Error from the 1 in the command line:
    CREATE TEMPORARY TABLE global tbl_bulknodes_temp (obt_uuid VARCHAR2) ON COMMIT DELETE ROWS
    Error report:
    SQL error: ORA-00906: lack of left parenthesis

    Hello

    You need the length of varchar2 column...

    SQL> CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp ( obt_uuid VARCHAR2(30) ) ON COMMIT DELETE ROWS;
    
    Table created
    
    SQL> CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp2 ( obt_uuid VARCHAR2 ) ON COMMIT DELETE ROWS;
    
    CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp2 ( obt_uuid VARCHAR2 ) ON COMMIT DELETE ROWS
    
    ORA-00906: missing left parenthesis
    
    SQL> 
    

    Kind regards

  • GeoRasters mosaicing with global temporary tables

    Mosaicing function requires that all individual images (there is a picture in each record) be in their own table before can be mosaiced, that there is no way to predict that some of the images in a table should be used.

    So, the best idea I've had so far is to use a global temporary table where the images I need can be selected and put in the temporary table - then mosaiced. It is important that the temporary table contain only the images necessary to a mosaic of data. However, I'll be at performs the operation of mosaic several times in a given session (perhaps even more 1 mosaic at the same time) and worry that there will be documents unrelated to the temporary table or former.

    Does this mean that I have to do a new session every time I need a picture of the mosaic? It seems not very effective. Can I have just one session, but a 'new' table temp every time?

    Thank you
    HD

    MH, creating an oracle georaster objects "VIEW", no matter where they are actually stored, would suit your needs. The mosaic georaster works on georaster views, which are treated as regular georaster tables.

    Jeffrey

  • declare a global temporary table

    Hello
    can I use the declare global temporary table (...) ststement of pl/sql, I need a temporary table for the current session.


    If not, what should be the alternative?

    Thank you...

    Published by: Amoeba on 23 August 2012 13:39

    Published by: Amoeba on 23 August 2012 13:41

    Hello

    >
    can I use declare global temporary table (...) as ststement of pl/sql, like I need a temporary table for the current session.

    If not, what should be the alternative?

    Thank you...
    >
    This query actually belongs to SQL and PL/SQL Forum. Please take care and post in the correct forum.

    In any case...
    CREATE TABLE TEMPORARY global is a DDL command. Once created TWGS will exist until he FELL. Try to create a TWG with the same name will fail. just like any table, view, etc. See http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables003.htm#i1006400

    a: you can create a TWG once and use/re-use it anywhere in your code.
    (b) as it is a DDL you can not use in the DECLARE section. You can use BEGIN and EXCEPTION.

    See you soon,.

  • problem of global temporary table in different environment

    I have 2 environment
    production of 1) development) 2.

    developing oracle version is-
    ----------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0    Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    in prodcution
    -----------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0    Production
    TNS for Linux: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
    We use two global temporary tables (tmp_transaction tmp_category_mv)(development and production).
    Both are contains the same set of data. I compared the data set.all are the same.
    but the return of different query defined in the development environment.

    But instead of a global temporary table in the development, it returns the same result, defined as the production, I used a normal array.

    Please suggest me what I do?

    my query
    ===========
    select /*+ parallel(t,4) */
                t.transaction_id,
                cr.cat_rule_id,
                cr.apply_seq,
                t.site_id,
                cr.site_id cat_rule_site_id
            from
                tmp_transaction t
                    left outer
                    join tmp_category_mv cr on
                            (cr.data_feed_code is null
                            or t.data_feed_code = cr.data_feed_code)
       and (cr.min_date is null or t.transaction_date > min_date)
       and (cr.max_date is null or t.transaction_date < max_date)
       and (cr.local_commodity_code is null or t.local_commodity_code like cr.local_commodity_code)
       and (t.local_supplier_code = cr.local_supplier_code)
       and (cr.local_commodity_name is null or t.local_commodity_name like cr.local_commodity_name)
       and (cr.invoice_description is null or t.invoice_description like cr.invoice_description)
       and (cr.cost_centre_name is null or t.cost_centre_name like cr.cost_centre_name)
       and (cr.purchase_order_description is null or t.purchase_order_description like cr.purchase_order_description)
       and (cr.purchase_order_line_desc is null or t.purchase_order_line_desc like cr.purchase_order_line_desc)
       and (cr.gl_code is null or t.gl_code like cr.gl_code)
       and (cr.gl_name is null or t.gl_name like cr.gl_name)
       and (cr.material_group_code is null or t.material_group_code like cr.material_group_code)
       and (cr.material_group_name is null or t.material_group_name like cr.material_group_name)
       and (cr.material_code is null or t.material_code like cr.material_code)
       and (cr.material_name is null or t.material_name like cr.material_name);
    Published by: BluShadow on February 8, 2012 13:29
    addition of {noformat}
    {noformat} tags. Please read {message:id=9360002} and learn to do this yourself.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

    Hello

    Could be

    Bug 6193398: QUERY PARALLEL WITH an OUTER JOIN ON TEMPORARY DELIVERS INCORRECT RESULTS TABLE

    Database version 10.2.0.2.0

    Status 80 - development of Q / A

    WORKAROUND SOLUTION:
    - - - - - - - - - -
    Use the series query or table normal and not temporary.

    Concerning
    Peter

    EDIT: Status seems to be incorrect, in patch has been in 10.2.0.4

    No MOS?

    Published by: Peter on 8 February 2012 14:28

  • APEX interactive report on a global temporary table

    Hello
    I tried to build an interactive report on a global temporary table (starry on commit), which is created with a cron every hour. Problem is that the sql to create the temporary table runs about 10 minutes, putting thus the sql directly in the page makes no sense.
    When I create the report, he sees all the columns, but no data. I can query the good data from sqlplus or through sqldeveloper. I'm doing something wrong?

    THX,
    Dennis

    Hello

    How to fill collection?

    Check APEX_COLLECTION procedures
    CREATE_COLLECTION_FROM_QUERY_B
    CREATE_COLLECTION_FROM_QUERYB2

    http://download.Oracle.com/docs/CD/E17556_01/doc/apirefs.40/e15519/apex_collection.htm#CJAHBBGD

    Kind regards
    Jari

  • order of the lines of the global temporary table

    I have a global temporary table "TMP_PAYMENT_ANNUITY" and I insert records in there with loop for each iteration of loop insert a row in the table.
    Now, I'm back records inserted user with cursor in this way:
       open o_annuity_payments for 
          select * from TMP_PAYMENT_ANNUITY;
    Can I be sure that the slider will have records in exactly the same order as inserted loop them?
    Or do I also insert rownumber column of my table that I filled with the loop iteration variable, and I'll be back slider like this:
       open o_annuity_payments for 
          select * from TMP_PAYMENT_ANNUITY
           order by ROWNUMBER;
    Currently, I have "ROWNUMBER"-column in the table, but maybe I should create then? ".
    The question is about the order of the rows, how this order will be without "in order to" - clause?

    Published by: CharlesRoos on June 2, 2010 03:03

    CharlesRoos wrote:
    >
    What makes the solution of the temporary table better?
    >

    1. This approach/solution is easier to read for other developers. Ugly hierarchical query with the function LAG is difficult to read and edit.

    I agree with you! It's one of the reasons when you should stop developing very sophisticated SQL statements. Even if the performance is slightly better.

    2-hierarchical-feature in sql is always slow and friendly error.

    I don't think that a hierarchical solution is necessary. but it may depend on your version of Oracle (think MODEL clause).

    3. it is easy to implement the "temporary table solution." with complex sql construction will be time-consuming and bug-friendly and complex.
    3. I'm not sure the question of perfomance, here I may be wrong, I test/compare.

    ...

    CharlesRoos wrote:
    1 can someone confirm that I don't need "ORDER byclause?

    I never would implement it WITHOUT a prescription by cluase. Why depend on such a solution?
    One of your strong points would improve maintainability. It is against this requirement.
    Imagine this happening, for example, when another developer decided to move from a temporary to a normal table. Maybe by adding a field 'user '.
    In such a scenario, you can find ways where the output is sorted not more properly.

    I can't find Google evidence.

    2. what happens if I order by as:

    select * from TMP_PAYMENT_ANNUITY
    ORDER BY ROWID;
    

    This approach maybe gives me the order of the rows as they are in the table?

    main problem is that you cannot test if it STILL works without order. But you will need to find not only one rare case that breaks it.

    * In a multiuser environment, the table could put a few lines where another session comes to delete certain lines. This could influence the agenda.
    * oracle could change something for the release of "like orders ' (I did they did already in the GROUP BY clause from 9i to 10g).

  • Are global temporary tables, a standard feature of Oracle?

    I apologize for introducing me to this community with what must seem like a very stupid question...

    I am a software developer, working on a product that uses Oracle as its database, specifically Oracle 11 g Enterprise Edition. Recently, I solved a problem of performance by converting an ordinary table into a global temporary table. Before my boss allows me to put this change in the product, it wants to be sure that global temporary tables are a standard part of Oracle, not something that the customer must install separately or pay extra for. (This is the first time that we never used them in our product, so I think that most of the team are not familiar with them).

    I know that Oracle has had global temporary tables since the last millennium, so if ever, they have been a feature of the premium, they are unlikely to be now, but the boss wants me to get independent confirmation of this.

    Thank you.

    Steve Pemberton

    Here you can see "feature availability by Edition":

    http://docs.Oracle.com/CD/E11882_01/license.112/e47877/editions.htm#DBLIC116

    TWG tables is not even mentioned, which means that they do not belong to the functional components are paid separately.

    One caveat - if you have an application that uses connection pooling, it is recommended to use ON COMMIT DELETE ROWS, not ON COMMIT PRESERVE ROWS

    (or always use explicitly "DELETE gtt_table" at the beginning), because otherwise a user of the application can display the data TWG who has previously made a second user of the application.

    Kind regards

    Zlatko

  • PLS-00357 on a global temporary table

    Oracle 11g R2

    I am using a dynamic SQL statement to delete rows. The WHERE THERE EXIST uses a global temporary table and it gives me

    PLS-00357: Table, view or reference sequence "TMPPRE_ARC" not allowed in this context

    Any ideas of a work around?

    create global temporary table tmppre_arc
      ( id number)
      ON COMMIT PRESERVE ROWS;
    
    
    CREATE OR REPLACE PROCEDURE test_del
    IS
       v_owner_tbl varchar2(61) := 'test_table'     ;
    BEGIN   /* DELETE_SOURCE */
            EXECUTE IMMEDIATE
                'DELETE FROM ' || v_owner_tbl || ' v ' || chr(10) ||
                'WHERE EXISTS ( SELECT    null '       || chr(10) ||
                'FROM      ' || tmppre_arc || ' r '  || chr(10) ||
                'WHERE       r.id     = v.id )' ;
    END test_del;
    /
    show errors
    
    
    LIsNE/COL ERROR
    -------- -----------------------------------------------------------------
    5/9      PL/SQL: Statement ignored
    8/29     PLS-00357: Table,View Or Sequence reference 'TMPPRE_ARC' not
    allowed in this contenxt
    
    
    
    
    
             allowed in this context
    

    This is false:

    'FROM ' | tmppre_arc | ' r '  || Chr (10) |

    Should be

    "OF tmppre_arc r | Chr (10) |

    SY.

  • What to fill in 'field of the temporary table' for global temporary tables?

    Hello

    I use the Data Modeler 4.0.1.836 and everything that I put in the box 'the scope of the table temp' for a global temporary table doesn't seem to affect the DDL script about the ON COMMIT PRESERVE/DELETE the LINES option. The script poster ON COMMIT PRESERVE ROWS always anything.

    Yet, some of my temporary tables must be created as ON COMMIT DELETE ROWS.

    Using the Data Modeler wrote about it:

    Scope of the temporary Table:

    For a class as a temporary table, you can specify a scope, such as the Dimension or the Session.

    Not sure what 'Dimension' has to do with the scope here, but it makes no difference.

    I tried to put 'Session', 'Dimension', 'Operation', but no luck. So what is the text for the script generate ON COMMIT DELETE ROWS?

    Thank you

    Hello

    The temporary Scope of Table property (on page Types of Classification of the table properties dialog box) is purely documentary.

    To set ON COMMIT DELETE ROWS you must expand the browser for the relational model and find the node for the relevant Oracle physical model.  If you develop it you will find an entry there for your Table. Double-click on that to get the physical model properties dialog box for your table, and you will find a "Temporary" facility that has options (Preserve Rows), YES (Delete Rows) YES or no.

    David

  • Global temporary tables

    Hi, db 10g,

    I created a global temporary table with this statement:

    create a table temporary global items (item_id);

    and tried to insert inside of Toad, and I got the message

    1 row inserted,

    but when I asked it, I got

    no selected line?

    I tried the script several times, and the result is the same?

    Thank you

    Hello

    Hi Salem wrote:

    It worked, I added this clause

    ON COMMIT PRESERVE ROWS;

    to create it, statement and it worked correctly, but are not this clause the default?

    No, the default is ON COMMIT DELETE ROWS.  I don't know why; ON COMMIT PRESERVE ROWS seems to be much more widely used.

  • trigger on the global temporary table

    Hello

    I have a global temporary table

    CREATE GLOBAL TEMPORARY table to register)

    no_registre NUMBER primary key,

    date of create_time

    ) ON COMMIT DELETE ROWS.

    I have to write a trigger on the table every time that the insertion is made.

    create or replace trigger tri_register

    before inserting the REGISTER

    for each line

    Start

    : new create_Date: = sysdate;

    end;

    /

    This trigger can work on this registry table?

    Thank you

    913578 wrote:

    Sorry Karthik.

    the thing is that I did not have privelleges to test, I send the code to some dba who makes deployment.

    Sorry to hear that!

    Please tell me... We can write triggers on GTT?

    of course, you can!

    SQL > create a global temporary table registry
    () 2
    no_registre 3 number primary key,
    create_time date 4
    5)
    6 on the validation to delete lines;

    Table created.

    SQL > create or replace trigger register_trig before insert in the register for each line
    2 start
    3: new.create_time: = sysdate;
    4 end;
    5.

    Trigger created.

    SQL > insert into values of registry (no_registre) (1);

    1 line of creation.

    SQL > select * from registry;

    NO_REGISTRE CREATE_TI
    ----------- ---------
    1 8 JULY 13

  • Global temporary Table problem in ADF

    Hello

    I have an application where I need to use a TWG (on the ranks of commit preserve) DB and try to insert data to TWG of screw ADF.
    But the table does not store data even after the Commit command. [Even I tried with permament DB table, and it worked.]

    Could someone help me find the problem with inserting data TWG.


    Kind regards
    Manju

    It is not a good idea to use a global temporary Table in an ADF application. The problem is that all web applications are really stateless. ADF maintains the State of a session data backup or reload it when necessary. Regarding the database, ADF can disconnect a session from the database at any time and connect to another session. This means that you do not necessarily have a continuous database session, then the lines you wrote to a TWG may well gone with the following query. There are ways to tell ADF not to do, but they have a considerable performance drop.

    Therefore, rethinking how you will save temporary information for the duration of a user session. You can do it in an object view ADF BC (VO) - interviewed by VO data carried session - if ADF needs to share a user session to load the data of another user (this is called "passivation") it will save these data. Then when ADF 'active' session, he'll find the saved data and reload it. Or you can use a permanent table with your name or session id - a little more complicated, but possible.

    If you want to tell us a little bit your use case - you need your application to do so, we may have other alternatives.

Maybe you are looking for