A reader, July 15, 2001 - 10:41 pm UTC
Migration from 8i to 9i
Munz, June 06, 2002 - 9:23 pm UTC
Tom:
We have a html web application running as stored procedures in 8.1.7 database.
THe DBA wants to upgrade from 8.1.7 to 9.0.2 on IBM/AIX server.
Is there anything that we need to do or be aware of for the web applications. Do you have to test the application again using the 9i database?
Thank you,
June 06, 2002 - 9:37 pm UTC
Well, anytime you change ANYTHING -- you need to test. Period.
I would say an upgrade from 817 to 902 would deserve a "test" -- definitely, 100%, yes, certainly.
Upgrade
A reader, June 06, 2002 - 11:14 pm UTC
And even an upgrade to 9.2.0 as I don't believe there is such a beast as 9.0.2 :)
June 07, 2002 - 7:10 am UTC
sure there is. There was a 9.0.2 patchset.
Do you have to test the application again using the 9i database?
Mark A. Williams, June 06, 2002 - 11:34 pm UTC
Munz:
"Do you have to test the application again using the 9i database?"
What else would you do? Go with "Well, gee, it compiled under 9i, so it *must* be ok... no reason to do a proper job here"?
This isn't meant as a "slam", but of the many questions you've posed here, surely you've learned enough to be able to answer that question after a little thought...
- Mark
9.0.2 Patchset
Mark A. Williams, June 07, 2002 - 10:45 am UTC
Tom:
Which platform for the 9.0.2 patchset? I'm looking in MetaLink and only see:
9.2.0.1
9.0.1.3
9.0.1.2
9.0.1.1
9.0.1.0
Thanks!
Mark
June 07, 2002 - 11:47 am UTC
Contact support -- there is a 9.0.2 out there (ias and others are built on that set of RSF's)
it's the stuff that comes with the current ias release. There may not have been a 9.0.2 standalone db release now that I peek around.
What's new in 9i R2 ?
Andre, June 07, 2002 - 2:54 pm UTC
What can you say are the most important new features in 9i R2 compared to R1 ? Right now, I'm studying R1, but the OU books often say something like "... in a later release of 9i ..."
June 07, 2002 - 9:31 pm UTC
So far -- personal favorites are
o logical standby, as opposed to physical standby. the logical standby has all of the features of the current (9i and before) physical standby but it can also:
- be on a different OS/platform (hetergenous)
- be open for reading and even writing whilst being recovered to
- supports the addition of additional structures against the data being "guarded"
-- such as additional indexes and materialized views (making it excellent for
offloading dss type work)
to name a few
o rename a column (yeah)
o DBA can grant on another schema's objects (yeah)
No more GATHER STALE needed ?
Andre, June 10, 2002 - 4:30 pm UTC
Is it true 9i R2 has a new feature with which I don't have to "download" statistics generated by MONITORING using GATHER STALE any more ?
June 11, 2002 - 10:26 am UTC
Continued
Andre, June 11, 2002 - 10:47 am UTC
Well, it seems to me DYNAMIC SAMPLING is still just a worthy turnaround in some cases. But I imagine you still recommend using DBMS_STATS or ANALYZE with jobs or crontab. Right ?
June 11, 2002 - 2:23 pm UTC
Yes, where dynamic sampling might come in handy is....
o tables that frequently and continous change in size
o maybe useful with global temporary tables, but I haven't really played with that as yet.
New features
Andre, June 12, 2002 - 9:06 am UTC
Short answers would be fine...
1 - Is Data Guard sold separately from Oracle9i ?
2 - Can you give me or direct me to an overview of: EXPROC, create library, and their use with create procedure/function ? What are "agents" in this context ? (I know what a .so lib in UNIX is)
3 - I understand how an HS agent works internally. It seems to be used for connecting the Oracle server to other systems. Can you give me an example of such systems?
June 12, 2002 - 9:10 am UTC
1) it is part of 9i EE (enterprise)
2) my book -- i spend 70 pages on extprocs in C.... Agents are new with 9i, they let you run an extproc process for each library if you want. this is so that
a) code you write can run as "user1", code we write can run as "user2" (different
OS users with different OS privs
b) if your code crashes, it won't crash our extproc (and vice versa ;)
3) sqlserver, db2, any odbc compliant data source using the odbc gateway, etc etc
etc.
Oracle 9i new features details
N, July 08, 2002 - 12:21 am UTC
Hi tom.
Please point where to find O9i 9.0.1.1.1 features and its details
Thanks
July 08, 2002 - 7:33 am UTC
General question to all you out there --
is the documentation really that hard to discover???
is otn.oracle.com an "unknown" resource???
(this is not a slam to "N" here, I just really am wondering if something is totally broken).
goto </code>
http://otn.oracle.com/ <code>
click on documentation. Then, since you are interested in the database, pick the release you want (901). Then, to get an inclusive list of books click on "list of books". Then click on New
Can you explain "native" execution?
Doug, July 17, 2002 - 4:45 pm UTC
Tom - you said way up at the top that your favorite feature was native PL/SQL execution. I looked a the doc. I'm confused. What's so un-native about PL/SQL in the first place? (I've always been confused by that term).
July 18, 2002 - 8:15 am UTC
Native COMPILATION -- not execution.
Native compilation (ncomp for short) is the ability to have plsql compiled into object (binary) code on the target operating system INSTEAD of it being turned into OS independent pcode (psuedo code) that is intepreted at runtime.
It makes it run faster.
A reader, July 18, 2002 - 9:06 am UTC
What is common SQL parser? Is this new in 9i? Thanks.
David, February 24, 2004 - 8:20 pm UTC
February 25, 2004 - 8:11 am UTC
in 8i and before plsql had its parser, the database had its parser and so on. What this lead to was this behaviour at times:
ops$tkyte@ORA817DEV> select count(*) over () from dual;
COUNT(*)OVER()
--------------
1
ops$tkyte@ORA817DEV>
ops$tkyte@ORA817DEV> begin
2 for x in ( select count(*) over () from dual )
3 loop
4 null;
5 end loop;
6 end;
7 /
for x in ( select count(*) over () from dual )
*
ERROR at line 2:
ORA-06550: line 2, column 37:
PLS-00103: Encountered the symbol "(" when expecting one of the following:
, from
<b>we know that sql is valid but the plsql parser hadn't yet caught up to this new feature, the workaround was:</b>
ops$tkyte@ORA817DEV>
ops$tkyte@ORA817DEV> declare
2 type rc is ref cursor;
3 C rc;
4 l_cnt number;
5 begin
6 open c for 'select count(*) over () from dual';
7 loop
8 fetch c into l_cnt;
9 exit when c%notfound;
10 end loop;
11 close c;
12 end;
13 /
PL/SQL procedure successfully completed.
<b>to use dynamic sql to hide the construct from plsql and let the rdbms parse the query itself. In 9i, with the common parser (eg: sharing code), this is corrected for once and for all</b>
Thanks.
David, February 25, 2004 - 12:33 pm UTC
logical standby
Venkat, March 04, 2004 - 6:01 am UTC
Tom,
In logical db, redo from primary is converted into SQL and it is applied in the standby database. Will it take more time when compared to redo apply in physical?
Thanks,
Venkat
March 04, 2004 - 12:33 pm UTC
sure - but -- the db is open for read write access which is something that is just "not possible" with a physical standby
9.2.0.4
David, April 22, 2004 - 7:07 pm UTC
Oracle uses the second digit to indicate the maintenance release number. What is the significance of third digit that always is 0. Someone was telling me that third digit is used to specify application server release number. Is it true? If so, does it mean that application server release number is still 0? Thanks.
April 23, 2004 - 10:13 am UTC
8.1.7.4
9.0.1.0
always zero?
Common parser not quite there yet ?
A reader, September 17, 2004 - 10:11 am UTC
Tom,
Quote from one of your followups above
"
to use dynamic sql to hide the construct from plsql and let the rdbms parse
the query itself. In 9i, with the common parser (eg: sharing code), this is
corrected for once and for all
"
Have you encountered the following ?
SQL> select *
2 from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Linux: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production
SQL>
SQL> select nvl2('yes','ja','nein')
2 from dual;
NV
--
ja
SQL>
SQL> declare
2 x varchar2(100);
3 begin
4 x := nvl2('yes','ja','nein');
5 end;
6 /
x := nvl2('yes','ja','nein');
*
ERROR at line 4:
ORA-06550: line 4, column 9:
PLS-00201: identifier 'NVL2' must be declared
ORA-06550: line 4, column 4:
PL/SQL: Statement ignored
SQL>
SQL> declare
2 x varchar2(100);
3 begin
4 execute immediate 'select nvl2(:1,:2,:3) from dual'
5 into x using 'yes','ja','nein';
6 end;
7 /
PL/SQL procedure successfully completed.
Hmmmm. I'm getting some strange 8i-deja-vu here...
Regards
Adrian
September 17, 2004 - 10:31 am UTC
nvl2 is a function, not sql, they apparently forgot to "map the function"
Forgot in 10G also
Adrian Billington, September 17, 2004 - 10:35 am UTC
Seems they forgot in 10g also ;o).
Actually, as NVL2 is a function, then it *should* in theory be a bit slower than CASE WHEN val IS NOT NULL THEN something ELSE something_else END. ( Which is actually what I was trying to test out in SQL and PLSQL ).
Any others you've come across ?
Regards
Adrian
September 17, 2004 - 11:50 am UTC
no, i haven't hit any others
Tom...off the cuff question
denni50, September 17, 2004 - 12:10 pm UTC
you wrote:
"perhaps the biggest "whats new" (i haven't played with it but have high hopes)is Native compilation of PLSQL"
"Native compilation vs Native executable"...
brought me back in time to an era when some of
my programming colleagues(including my fiancee at the time) were programming in Assembler Language.
Do they still program in Assembly Language today?
I stuck with the higher level languages Fortran,Cobol,PL/1.
just curious.
September 17, 2004 - 1:16 pm UTC
I'm sure they do. way back when (1990) I attempted to go back to school. They attempted to teach me m6800 assembler on a macintosh for some reason. learning assembler was easy. using a macintosh with a command line -- not so easy (i saw that stupid bomb so many times...)
PL/1 - my first real language, one of my favorites to this day.
HLASM
denni50, September 17, 2004 - 2:14 pm UTC
Hey Tom....did some research for the heck of it and
found there is a High Level Assembler Language.
I think I'll check it out.
here's a snippet of an Assembler Programmer's ode:
"Every bit is sacred, Every bit is right.
If a bit is wasted, I can't sleep at night.
Every bit is gorgeous, Every bit is free.
Admire the shape it forges, In hex and BCD!
(July 2001 Dr Dobbs Journal)"
</code>
http://www.sysprog.net/hlasm.html <code>
September 17, 2004 - 2:19 pm UTC
lol for that "every bit is sacred" reminded me of Monty Pythons "The meaning of life" and their take on that song (thanks, now it is stuck in my head)
What Changed in 9.2.0.5.0 in Terms of FIRST_ROWS and/or ALL_ROWS?
Mac, January 25, 2005 - 9:19 am UTC
When we moved one of our databases to 9.2.0.5.0, a query's became very slow. We had to change our FIRST_ROWS mode to ALL_ROWS (for that query) for it to run as fast as before.
What is different about 9.2.0.5.0? FYI, all our init.ora and other settings are the same as before. Has any default value of some parameter changed in 9.2.0.5.0? Or any other changes?
Please help!
January 25, 2005 - 9:41 am UTC
you don't say what you moved *from*
Moved from 9.2.0.4 to 9.2.0.5.0
Mac, January 25, 2005 - 10:09 am UTC
Moved from 9.2.0.4.
Thank you for your prompt reply!
January 25, 2005 - 10:23 am UTC
do you still have 9204 -- there are many millions of changes with each release/patch.
what you would want to do is compare the tkprof before/after, or compare the 10053 trace before/after.
No More 9.2.0.4
Mac, January 25, 2005 - 11:25 am UTC
No more 9.2.0.4. It's history.
January 25, 2005 - 11:35 am UTC
then it'll be really hard to tell "whats different" in your case.
difference between features of 7.3 and 9i
amna, March 25, 2005 - 11:19 pm UTC
sir
please point me to some link which gives a concise list of the new features from Oracle 7.3 and 9i.i need it very urgently.I ma looking on your site but i am not so much lucky.
thanx and regards
aman
9.2.0.4 to 9.2.0.6
atul, May 07, 2005 - 1:58 am UTC
Hi,
I need to upgrade our database to 9.2.0.6 to 9.2.0.4.
Correct me please
1)change oratab to 9.2.0.6 home.
2)export 9.2.0.6 HOME
2)export SID
3)run catpatch.sql
Is i am missing something?
Please let me know
May 07, 2005 - 8:03 am UTC
step 1: get patchset
step 2: read the readme
step 3: do what you learned in step 2, it has the step by step process listed very clearly.
you would not install into a separate oracle home, it fixes the existing software install.
PL/SQL native compilation
Govind Sharma, November 28, 2005 - 3:43 pm UTC
Tom,
Seeing your comments on PL/SQL Native compliation, I am eager to try for our current preformance problem on 9.2.0.5.
However, I would like to know if there are any pre-requists such as Pro C apart from a C compiler availability at OS level. (I have tried searching otn documentation and I could not find anything on pre-requists).
Also, the problem we are trying to fix is a performance issue with our APIs which does a lot of XML parsing, do you think Native compilation will help speed it up XML.
Thanks,
Govind
November 28, 2005 - 11:43 pm UTC
I had high hopes, best I've seen is a doubling of performance for numerically complex stuff - less/nothing for the rest.
The best performance kicker - going to 10g, hands down. change nothing but the plsql compiler ;)
you need a C compiler.
I do not believe it will affect XML parsing at all since current releases are already in C for the XML implementation.
NVL2
pradikan, December 07, 2005 - 5:49 am UTC
Hi TOm,
Is there a NVL2 Function available in the version 9.2.0.5.
If yes how can i use it with regular packages?
Thanks in Advance
December 07, 2005 - 7:19 am UTC
http://docs.oracle.com/docs/cd/B10501_01/server.920/a96540/functions89a.htm#91637
it was documented in the 9iR2 doc set....
ops$tkyte@ORA9IR2> select nvl2( '', 'a', 'b' ) from dual;
N
-
b
ops$tkyte@ORA9IR2> exec dbms_output.put_line( nvl2( '', 'a', 'b' ) );
BEGIN dbms_output.put_line( nvl2( '', 'a', 'b' ) ); END;
*
ERROR at line 1:
ORA-06550: line 1, column 30:
PLS-00201: identifier 'NVL2' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ops$tkyte@ORA9IR2> begin for x in ( select nvl2('','a','b') x from dual )
2 loop
3 dbms_output.put_line( x.x );
4 end loop;
5 end;
6 /
b
PL/SQL procedure successfully completed.
looks like in plsql, you cannot call it "directly", but like decode - must "select it"
NVL2 and PL/SQL
maaher, March 23, 2006 - 5:46 am UTC
The PL/SQL documentation (PL/SQL User's Guide and Reference, chapter 2 - Fundamentals of PL/SQL) has a list of all built-in functions of PL/SQL and NVL2 isn't mentioned there so it isn't that an implicit reference that you cannot use it in PL/SQL?
XMLDOM on 9i
Govind Sharma, May 11, 2006 - 11:16 am UTC
Hi Tom,
I have asked you a question on Native compilation on this thread before and the reason we were looking at it was to speed up our XML generation or reducde the CPU utilization when we try and generate XML out of our database using the XMLDOM package on Oracle 9i database.
We have got a situation where when there are 4-5 users on the XML application, the application eats up all the CPU of the database box (the DB Box is twin CPU Sun Sparc box with one cpu 1.2Ghz), however an Oracle forms application using the same database with 300 users can use the box without any problems and the box is not maxing out.
Looking at the above would you be able to give us pointers to any set-up changes ( e.g. changing some database parameters, unix setting etc.) we can do to magically fix this problem or get some improvement
Unfortunately, we are in a situation where we can not upgrade to 10g or re-write / analyse the application code because of the volume of the code and time constraints.
Many Thanks
A reader, May 18, 2006 - 1:15 pm UTC