Based on an Oracle document, it stores different parts of a timestamp with a time zone within a country in terms of numbers. I read this article http://www.orafaq.com/wiki/Timestamp , which explains the algorithm of the internal timestamp format. So I checked a simple test to test it.
SQL> create table tz_test(id number, tz timestamp with time zone);
Table created.
SQL> insert into tz_test values(1, timestamp '1999-10-29 21:00:00 -7:00');
1 row created.
SQL> insert into tz_test values(2, timestamp '1999-10-29 21:00:00 US/Pacific');
1 row created.
SQL> select id, dump(tz, 10) from tz_test where tz=timestamp '1999-10-29 21:00:00 -7:00';
ID DUMP(TZ,10)
--------------------------------------------------------------------------------
1 Typ=181 Len=13: 119,199,10,30,5,1,1,0,0,0,0,13,60
2 Typ=181 Len=13: 119,199,10,30,5,1,1,0,0,0,0,137,156
An article in orafaq talks about how an oracle stores a timezone offset, and my first line of test proved it. But there is nothing about how to store a timezone literal. Therefore, I really want to know this. I also want to know internally how the oracle evaluates the timestamp '1999-10-29 21:00:00 -7: 00' and the timestamp '1999-10-29 21:00:00 US / Pacific' are identical.