Yes, I think the name "GLOBAL TEMPORARY" is a bit misleading. It IS "global"
in the sense that any user with permission can use it. However, that is also
true of a normal table.

I think a better name would have been INTRASESSION TEMPORARY table or
PRIVATE TEMPORARY table.

So, yeah, create a normal table and things will work the way you think they
should.

Regards,
Mike

On Wed, Apr 27, 2011 at 10:21 AM, Avinash Naidu <avisna...@gmail.com> wrote:

> just what I suspected
>
> create table as
>
> CREATE GLOBAL TEMPORARY TABLE "XXX"."TABLEA"
>   (
>        ...
>   ) ON COMMIT PRESERVE ROWS ;
>
> depending on the usage of table,
>
> Global temporary table is treated differently in oracle, every session can
> have it's own data in the table, which can not be viewed from other
> sessions.
> you may want to understand what is your requirement
>
> On Wed, Apr 27, 2011 at 10:17 AM, Avinash Naidu <avisna...@gmail.com>wrote:
>
>> Hi,
>>
>> I do not know what is Table A from this example,
>> but if table A is temporary table in this example, you will have to create
>> temporary table with 'ON COMMIT PRESERVE ROWS'
>>
>> by deault global temporary tables in oracle delete rows on commit
>>
>> google it for examples.
>>
>> Thanks,
>> Avinash
>>
>>   On Wed, Apr 27, 2011 at 9:42 AM, ddf <orat...@msn.com> wrote:
>>
>>>
>>>
>>> On Apr 27, 8:58 am, Michael Moore <michaeljmo...@gmail.com> wrote:
>>> > That's not the way it should work. After you run the INSERT you should
>>> be
>>> > able to do a SELECT, and see the records in table A. Other sessions
>>> will NOT
>>> > see those records in TABLE A until you do the commit.
>>> >
>>> > I am guessing that you've got multiple sessions open (multiple sqlplus
>>> > windows or multiple sql developer windows) and that your results are
>>> due to
>>> > testing from different sessions.
>>> >
>>> > Make sure you are issuing all of your commands from the same session
>>> > (window).
>>> >
>>> > Mike
>>> >
>>> >
>>> >
>>> > On Wed, Apr 27, 2011 at 8:15 AM, Dom <dolivas...@gmail.com> wrote:
>>> > > I'm new to Oracle -- I've always used SQL Server, with autocommit
>>> > > turned on.  My problem is the following two statements:
>>> >
>>> > > 1. insert into TableA (select * from TableB where rownum < 10);
>>> > > 2. commit;
>>> >
>>> > > After I do the first, I can see the records TableA.  Then I do the
>>> > > second command, and suddenly the records disappear.  Any ideas?
>>> >
>>> > > --
>>> > > You received this message because you are subscribed to the Google
>>> > > Groups "Oracle PL/SQL" group.
>>> > > To post to this group, send email to Oracle-PLSQL@googlegroups.com
>>> > > To unsubscribe from this group, send email to
>>> > > oracle-plsql-unsubscr...@googlegroups.com
>>> > > For more options, visit this group at
>>> > >http://groups.google.com/group/Oracle-PLSQL?hl=en- Hide quoted text -
>>> >
>>> > - Show quoted text -
>>>
>>> I agree with Mike; a commit in the same session as the transaction
>>> will preserve the transaction, not erase it:
>>>
>>> SQL> create table tableb as select * From all_objects where rownum
>>> <=500;
>>>
>>> Table created.
>>>
>>> SQL>
>>> SQL> create table tablea as select * From tableb where 0=1;
>>>
>>> Table created.
>>>
>>> SQL>
>>> SQL> insert into TableA (select * from TableB where rownum < 10);
>>>
>>> 9 rows created.
>>>
>>> SQL>
>>> SQL> select owner, object_name, object_id From tablea;
>>>
>>> OWNER                          OBJECT_NAME
>>> OBJECT_ID
>>> ------------------------------ ------------------------------
>>> ----------
>>> SYS                            DUAL
>>> 258
>>> PUBLIC                         DUAL
>>> 259
>>> SYS                            SYSTEM_PRIVILEGE_MAP
>>> 311
>>> PUBLIC                         SYSTEM_PRIVILEGE_MAP
>>> 313
>>> SYS                            TABLE_PRIVILEGE_MAP
>>> 314
>>> PUBLIC                         TABLE_PRIVILEGE_MAP
>>> 316
>>> SYS                            STMT_AUDIT_OPTION_MAP
>>> 317
>>> PUBLIC                         STMT_AUDIT_OPTION_MAP
>>> 319
>>> SYS                            KOTTD
>>> 334
>>>
>>> 9 rows selected.
>>>
>>> SQL>
>>> SQL> commit;
>>>
>>> Commit complete.
>>>
>>> SQL>
>>> SQL> select owner, object_name, object_id From tablea;
>>>
>>> OWNER                          OBJECT_NAME
>>> OBJECT_ID
>>> ------------------------------ ------------------------------
>>> ----------
>>> SYS                            DUAL
>>> 258
>>> PUBLIC                         DUAL
>>> 259
>>> SYS                            SYSTEM_PRIVILEGE_MAP
>>> 311
>>> PUBLIC                         SYSTEM_PRIVILEGE_MAP
>>> 313
>>> SYS                            TABLE_PRIVILEGE_MAP
>>> 314
>>> PUBLIC                         TABLE_PRIVILEGE_MAP
>>> 316
>>> SYS                            STMT_AUDIT_OPTION_MAP
>>> 317
>>> PUBLIC                         STMT_AUDIT_OPTION_MAP
>>> 319
>>> SYS                            KOTTD
>>> 334
>>>
>>> 9 rows selected.
>>>
>>> SQL>
>>> SQL> truncate table tablea;
>>>
>>> Table truncated.
>>>
>>> SQL>
>>> SQL> insert into TableA (select * from TableB where rownum < 10);
>>>
>>> 9 rows created.
>>>
>>> SQL>
>>> SQL> select owner, object_name, object_id From tablea;
>>>
>>> OWNER                          OBJECT_NAME
>>> OBJECT_ID
>>> ------------------------------ ------------------------------
>>> ----------
>>> SYS                            DUAL
>>> 258
>>> PUBLIC                         DUAL
>>> 259
>>> SYS                            SYSTEM_PRIVILEGE_MAP
>>> 311
>>> PUBLIC                         SYSTEM_PRIVILEGE_MAP
>>> 313
>>> SYS                            TABLE_PRIVILEGE_MAP
>>> 314
>>> PUBLIC                         TABLE_PRIVILEGE_MAP
>>> 316
>>> SYS                            STMT_AUDIT_OPTION_MAP
>>> 317
>>> PUBLIC                         STMT_AUDIT_OPTION_MAP
>>> 319
>>> SYS                            KOTTD
>>> 334
>>>
>>> 9 rows selected.
>>>
>>> SQL>
>>> SQL> pause
>>>
>>>
>>> Here we start a second session, query tablea, commit, then query
>>> tablea again:
>>>
>>> SQL> select * From tablea;
>>>
>>> no rows selected
>>>
>>> SQL>
>>> SQL> commit;
>>>
>>> Commit complete.
>>>
>>> SQL>
>>> SQL> select * from tablea;
>>>
>>> no rows selected
>>>
>>> SQL>
>>>
>>> We go back to the original session, issue a commit then query tablea:
>>>
>>> SQL>
>>> SQL> commit;
>>>
>>> Commit complete.
>>>
>>> SQL>
>>> SQL> select owner, object_name, object_id From tablea;
>>>
>>> OWNER                          OBJECT_NAME
>>> OBJECT_ID
>>> ------------------------------ ------------------------------
>>> ----------
>>> SYS                            DUAL
>>> 258
>>> PUBLIC                         DUAL
>>> 259
>>> SYS                            SYSTEM_PRIVILEGE_MAP
>>> 311
>>> PUBLIC                         SYSTEM_PRIVILEGE_MAP
>>> 313
>>> SYS                            TABLE_PRIVILEGE_MAP
>>> 314
>>> PUBLIC                         TABLE_PRIVILEGE_MAP
>>> 316
>>> SYS                            STMT_AUDIT_OPTION_MAP
>>> 317
>>> PUBLIC                         STMT_AUDIT_OPTION_MAP
>>> 319
>>> SYS                            KOTTD
>>> 334
>>>
>>> 9 rows selected.
>>>
>>> SQL>
>>>
>>> We return to the second session and issue the same query as above;
>>> this time we see data:
>>>
>>> SQL> select owner, object_name, object_id From tablea;
>>>
>>> OWNER                          OBJECT_NAME
>>> OBJECT_ID
>>> ------------------------------ ------------------------------
>>> ----------
>>> SYS                            DUAL
>>> 258
>>> PUBLIC                         DUAL
>>> 259
>>> SYS                            SYSTEM_PRIVILEGE_MAP
>>> 311
>>> PUBLIC                         SYSTEM_PRIVILEGE_MAP
>>> 313
>>> SYS                            TABLE_PRIVILEGE_MAP
>>> 314
>>> PUBLIC                         TABLE_PRIVILEGE_MAP
>>> 316
>>> SYS                            STMT_AUDIT_OPTION_MAP
>>> 317
>>> PUBLIC                         STMT_AUDIT_OPTION_MAP
>>> 319
>>> SYS                            KOTTD
>>> 334
>>>
>>> 9 rows selected.
>>>
>>> SQL>
>>>
>>> You're not issuing the commit from the session performing the insert.
>>>
>>>
>>> David Fitzjarrell
>>>
>>> --
>>>  You received this message because you are subscribed to the Google
>>> Groups "Oracle PL/SQL" group.
>>> To post to this group, send email to Oracle-PLSQL@googlegroups.com
>>> To unsubscribe from this group, send email to
>>> oracle-plsql-unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>>
>>
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Oracle PL/SQL" group.
> To post to this group, send email to Oracle-PLSQL@googlegroups.com
> To unsubscribe from this group, send email to
> oracle-plsql-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/Oracle-PLSQL?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to Oracle-PLSQL@googlegroups.com
To unsubscribe from this group, send email to
oracle-plsql-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en

Reply via email to