Skip to Main Content


Question and Answer

Connor McDonald

Thanks for the question, Meyer.

Asked: August 31, 2002 - 12:11 pm UTC

Last updated: October 01, 2018 - 2:30 am UTC

Version: 816-9ias

Viewed 10K+ times! This question is

You Asked


I have always been amazed/fascinated with Oracle, and how insanely awesome it was designed and works.

I have often been curious, what language(s) are used to create Oracle at the lowest levels and up (and over time has the base language changed) , do those developers use GUI tools?. Is there one brain that gets most things done/delegates, small or huge teams of people? Are any of the FIRST developers still making it better. Is the development centralized at HQ or spread out around the world (internet style)?


and Tom said...

You want to read:

</code> <code>

Oracle was originally written in fortran and then redone in C, which it has been written in ever since. In fact, when we ported Oracle to the mainframe for the first time we were faced with an issue -- do we rewrite Oracle in assembler (there was no c compiler on the mainframe back then) or do we write a C compiler? We wrote a C compiler.

Yes, the developers use GUI tools for source code control, an IDE for development/debugging. It takes a team of literally hundreds of people -- there is no single "brain" (thankfully, progress would be very slow otherwise). Yes, many of the first developers are still here (read the above article, they interview one or two). The development is (and has been for a very long time, before "internet style" was cool even) very decentralized. There is development going on 24 hours a day pretty much from the east coast of the US (we have a new england development center) to the west cost (portland and redwood shores) to australia, india and moving into europe -- the UK and Ireland.


  (70 ratings)

Is this answer out of date? If it is, please let us know via a Comment


CG, August 31, 2002 - 6:32 pm UTC

Great Information

Meyer, August 31, 2002 - 7:26 pm UTC

Thanks, this was very interesting.

Do you think it will go from C to java?

Thanks again!


Tom Kyte
August 31, 2002 - 7:29 pm UTC

Hmm, let me think about that...

No. doubt it. Not this decade anyway.

OH working with MS?

Sikandar Hayat Awan, September 01, 2002 - 8:55 am UTC

Thanks for the above info but let me know how you are working with Microsoft? (MS C++) MS dominating strategies. As in Oracle Applications you have to get MKS toolkit to integrate with windows.

Tom Kyte
September 01, 2002 - 10:14 am UTC

I don't understand what you are asking?

Oracle History - Book Suggestion

Robert, September 02, 2002 - 4:32 pm UTC

If you're really interested in how Oracle grew from an (borrowed ?) idea from the beginning to what it is today...the gory & downs ...anecdote , there's a good book "The Difference Between God and Larry Ellison", very interesting.

Interesting information

Ian, May 06, 2003 - 3:13 am UTC

Just out of curiosity, I wanted to know, whether you were also involved in development of the core database (since, you are pretty comfortable with C/C++).

Tom Kyte
May 06, 2003 - 7:50 am UTC

Nope, never worked on the kernel - that, that would be a career path ;)

What about the designers & developers?

A reader, May 06, 2003 - 8:19 am UTC

Much publicity and respect is given to Oracle's best-known and successful "power users" such as Tom, Jonathan Lewis, Anjo Kolk, Cary Millsap, Steve Adams and Connor McDonald to name but a few. Their knowledge of the database and how to use it is immense, granted, but what about the guys who design and develop the database itself? I'd like to see MUCH more respect go out to those guys - they must be awesome designers/programmers. Without them, there wouldn't be an Oak Table.

Tom Kyte
May 06, 2003 - 8:23 am UTC

they are all over the place. goto -- today for example, Wim Coekaerts is right there. OracleWorld has the "meet the guru's" forum. They write for Oracle Magazine - and so on.

why do you think they are "not respected"

How about C to VC++ ?

Ashq Shamsuden, May 06, 2003 - 8:46 am UTC

Tom ,

Why not give a try from C --> VC++?

Tom Kyte
May 06, 2003 - 9:16 am UTC

why -- so I could be tied to an operating system that I don't even have running on any computers?? VC++ doesn't run too well on my computers.

Even so, C++ -- yuck, I tried it -- never saw the point. I've seen lots of failed C++ projects, a few successful ones.

Expected the same answers

Ashiq Shamsudeen, May 06, 2003 - 10:07 am UTC

I was expecting the same answers Tom ;)

A reader, May 06, 2003 - 10:25 am UTC

Hi Tom,
Your knowledge of the database is so great, that its actually hard to believe that you didn't write anything for the database.
Infact, initially I used to think that in tkprof (tool kit profiler) tk stands for "Thomas Kyte".

I think, you like C but not C++. Any specific reasons? C++ is also C with Classes. I also did a few projects in C++ before migrating to databases. The only thing that I discovered so far is that, in each technology everythings boils down to the design /architecture and programming methodology.
Ultimately onus lies in the hands of the Developer

Tom Kyte
May 06, 2003 - 10:49 am UTC

I just didn't like C++, found it was always trying to be "too cute" for its own good.

C -- lean, mean, efficient, sparse, a great low level tool.

Very interesting

A reader, May 06, 2003 - 11:14 am UTC


Do the oracle kernal programmers still use their own homegrown compiler? Have they written their own compiler for each different target platform?

Tom Kyte
May 06, 2003 - 11:19 am UTC

no, we use the system c compilers. As i recall -- it was the mainframe that we had a choice "write a C compiler or port Oracle to assembler". We wrote a C compiler -- but now we use the system C compiler.

Why not Java?

Kashif, May 06, 2003 - 6:06 pm UTC

Hi Tom,

Excuse my ignorance, but why would you say that Oracle will not be re-written in Java? Is it too slow? Or is it just the sheer effort in re-writing the code? Or something else altogether.


P.S. On a side note, that TK comment by one of the posters cracked me up, I nearly fell off my chair laughing...

Tom Kyte
May 06, 2003 - 6:26 pm UTC

I seriously doubt it -- i certainly *hope* not.

btw, the tk in tkprof is ToolKit as far as I know.

A reader, May 06, 2003 - 10:06 pm UTC

With Oracle being such a large, complex and critical system, I always wonder how you test changes. To always insure the integrity of the data you must do some serious testing. How do you manage to test all the different options and features that will be running in today’s large and complex computing environments?

BTW speaking of recognizing GURUs it was sad to note the recent passing of Ted Codd, the super GURU that started it all.

Tom Kyte
May 07, 2003 - 7:25 am UTC

you use automated testing software with regression tests. The oracle database itself is probably undergoing tests 24/7 -- by the time they are done with one set, a new build is there waiting to be tested again.

with your own applications, you need to have the same sort of facilities. Unless of course you want to be down after every update (updates to your code, the OS, the database -- whatever)

About Oracle

Reaz, May 06, 2003 - 10:28 pm UTC

Frankly, in this part of the world Oracle is still in a exploring stage. So one can imagine the hard time we are facing on letting people getting to know the power of Oracle. Most of the IT guys still prefer to go on flat file system because of lack of interest or unwillingness to learn RDBMS.

This discussion has definetely helped me to understand Oracle better and looking forward to know more about it.


Very Interesting

Kumar, May 07, 2003 - 5:59 am UTC

I found this particular thread very interesting.. Its hard to believe that you did not have any role in kernal development.
And I fully agree with you on C vs C++. C is simple and powerful. C++ may reduce development time in some cases but makes things complex..

Oracle Source

Robert, May 07, 2003 - 1:54 pm UTC

a few people in his thread mentioned your deep knowledge
of the product and your background in C...
I am wondering if you ever have had actually a look at (portion of) the source code.
Sort of "peek inside the gut of the monster" ?

Tom Kyte
May 08, 2003 - 9:04 am UTC

sure, snippets come up all of the time. I've never been terribly interested in looking at it in any sort of "depth". It is just code after all (and lots of it)

Very Interesting thread

A reader, May 07, 2003 - 2:24 pm UTC

I don't know whether Its the right forum, but I would also like to pay my tribute to the Original Guru Ted Codd.

Tom, Did you have the priviledge of meeting him in person?

Tom Kyte
May 08, 2003 - 9:05 am UTC

Nope. read his books though.

C Compiler

Jerry, May 13, 2003 - 10:21 am UTC

Interesting thread. Love history. When you say "system c compiler" are you referring to the good ole "cc" compiler on Unix?

Tom Kyte
May 13, 2003 - 10:34 am UTC

the officially supported compiler on that system...

gcc on linux
sparcworks on solaris
the optional ansi C compiler on hp/ux
visual C/C++ on windows

Smart SQL SERVER FoolHardy Oracle

A reader, May 13, 2003 - 11:40 am UTC

I have seen that Whatever is lacking in Oracle, SQLSERVER brings that up in a user-friendly tool.Oracle then realises its mistake ,wakes from its sleep and then brings those features ROLLUP ,CUBE,CASE usage
Microsoft learns from Oracle and tries to beat it at its own game though unsucessfully.But it is appealing for small DB customers.
I donot know why Oracle does things in a difficult manner whereas the same thing is so easy to do in SQLSERVER gui tools.
Example to export or import a csv file you have to write code in Oracle , SQLSERVER has DTS for that.
I think Oracle works with the concept that if something is simple it cant be good , so unnecessarily make it tough.
Any COmments.

Tom Kyte
May 13, 2003 - 4:27 pm UTC

what the heck are you talking about?

maybe you just never bothered to read the documentation or look at what is on the CD? (hint -- OEM)

ignorance is bliss

Jim, May 13, 2003 - 1:03 pm UTC

Guess you've never used sqlloader.

Have you ever used OEM you can do almost every thing as ms-visual tools

A reader, May 13, 2003 - 1:26 pm UTC

Well Guys

A reader, May 13, 2003 - 1:48 pm UTC

OEM is not for developers. The DBA stick with it and always want to control It.It requires more then devloper privs to use OEM.
Yes Have used SQLLDR but does it not require u to write a control file. Well SQLSERVER DTS doesnot require any coding.

I feel there is a genuine need for ORacle to change its strategy, just learn from Microsoft as Microsoft learns from Oracle. I am a diehard fan of ORacle just complaining about missing links.

Tom Kyte
May 13, 2003 - 5:08 pm UTC

OEM is for developers.

Developers can in fact use it, the privs are settable.

I just connected with scott/tiger -- all they need is the ability to read the needed dictionary views.

Dave, May 13, 2003 - 2:00 pm UTC

I read that PL/SQL was originally based on Ada. Do you know whether it inhereted the robustness of Ada also (strong typing etc), and also whether subsequent enhancements to PL/SQL have maintained the similarity to Ada? I looked up some Ada examples on the web and they sure looked pretty familiar.

Tom Kyte
May 13, 2003 - 5:08 pm UTC

as an ex-ada programmer, i can say it inherited much of the ada language, including the strong typing.

the two big things it did not have are

o generics
o tasking

More input...

Brent, May 13, 2003 - 2:20 pm UTC

One of the reasons Oracle is the way it is , is because of flexibilty.

Yes, Sql-loader is a command line tool that requires you to create a script. It also give you the ability to run sql-loader from an installation script (for example, to populate a table from a flat file). And there are also gui tools that provide a front end...

I personally like having the flexibility of doing it either way.

SQLSERVER so easy....

Robert, May 13, 2003 - 2:24 pm UTC

>>I donot know why Oracle does things in a difficult manner whereas the same thing is so easy to do in SQLSERVER gui tools.

Maybe because SQLSEVER runs on NOTHING but click-click-Windo$z ? "easy" things - do not last.

Heck if the big deal is to have some trivial GUI

Jim, May 13, 2003 - 2:49 pm UTC

The dts thing is a pretty trivial GUI. If everything is aligned just right then it will work, else you have to write code to move it around and massage it. (I guess that's what tsql is for.) One could do the same thing for SQLLoader.(just gen the control file and run it.)

In short, the DTS thing is built to impress managers. (not knowledgeable ones)

managers are the one ......arent they...!!!

reader, May 13, 2003 - 3:20 pm UTC

but managers are the one who buy that software......make money available right!!!


robert, May 13, 2003 - 5:32 pm UTC

>> but managers are the one who buy that software......make money available right!!!

Well, they got a job to keep too, no ?
That's why we Oracle junkies have to drill into their styrofoam brain ;)...that easy and pretty is no good, that
they should not bet their career on fluff, and what really counts is performance, scalability etc...when the chips are down.

Dave, May 13, 2003 - 8:34 pm UTC

Just to continue my temporary obsession with Ada, let me put forward a scenario.

Suppose you had a team of database developers, all PL/SQL-experienced and other-language-inexperienced, and you needed to standardize on a language that will interface with the db from the server -- say for generating EDI files, moving stuff about, simple command line interfacing etc.. Would you say that Ada is a reasonable choice then, rather than C or java? Would you care to compare them in terms of learnability, robustness etc. in such a case, or would the general pervasiveness of C/Java rule it out?

Tom Kyte
May 13, 2003 - 9:17 pm UTC

Ada is sort of "dead" these days. It would not be a good choice, since the DoD abandoned it and the corporate world never picked it up....

Dave, May 13, 2003 - 9:23 pm UTC

Ah, so what you're saying is that the developers would be getting training on a skill that they could use nowhere else? That would not make them more employable somewhere else?

H'mmmmm. Verrrry interesting.

Tom Kyte
May 13, 2003 - 9:34 pm UTC

No, I'm saying that Ada compilers, Ada programmers, Support for the Ada language is pretty much "not there"

Sort of like programming in APL. Of great academic interest.

Please clear my understanding

Sikandar Hayat, May 14, 2003 - 12:06 am UTC

Dear TOM,
I want to know that as you have mentioned above that you test the Oracle with different softwares and 24/7. During evaluation of Oracle 9i Rel1 I came to know that some bugs are removed in Rel 2 of 9i. I think before releasing Rel1 you had tested it again and again then why these bugs specially in the new features "Your response in the thread subjected, '9i dynamic SGA, pre-allocated?'".
Do you not think these minor things effect the reliability of the product. We the DBA's try to convince the Management for new releases but when the Management come to know that there are bugs in the main features/new features then they say we are ok with the current one.
What you say about it?

Sorry for asking this question but we face it.

Tom Kyte
May 14, 2003 - 6:39 am UTC

there are bugs in 9iR2, there are bugs in 8iR3.

I don't understand where you are going?

Yes, 9iR2 has fixed things that didn't work exactly right in 9iR1 -- at the same time however, it released other new features that need a fix, maybe it even "broke" things that used to work.

Install an OS patch to fix a bug and you've probably added a new "bug".

A reader, May 14, 2003 - 1:06 pm UTC

Hi Sikandar,
Since we as human beings are not completely debugged, there will be bugs in whatever we do.
Oracle being developed by mere mortals like us is no exception to the rule.
I think the important point is look at the company's background and its future roadmap.
Companies like Oracle and even Microsoft have brilliant support teams which provide excellent solutions to the problems/bugs faced by users.
Will you work on a product, which is no longer supported?
(e.g Oracle 8i defect resolution will end on 31-Dec-03. Makes it much more logical to migrate to 9i) Or will you work on Sybase/interbase, which no body is sure, whether they will be there after 5 years.
I don't believe in perfection. Nothing is perfect. There is always a better product. Best doesn't exist..........

PS: The last few threads have deviated from the original question about Oracle internals/history to comparison between sql server, bugs etc. Let's get back to the original question.

Interesting Topic

Sue, June 05, 2003 - 11:23 am UTC

Many years ago, I asked an Oracle instructor what "tkprof" meant -- how did they name that tool?. The answer: "trace kernel profile".


A reader, July 27, 2003 - 5:39 pm UTC

Has any developer who visits this forum , used OEM to write data to a flat file.

Tom, in which world are you living. Developers being given access to data dictionary views to enable them to write to flat files using OEM, is very difficult happen.

I beg your pardon for saying the above.

It is very very strictly used as a DBA tool.

Do you have specific documentation which explains , how it can be configured for developers?

Tom Kyte
July 27, 2003 - 8:15 pm UTC

just try to connect, it will tell you exactly what you need (that is all I did).

Cool Cool

Sikandar Hayat, July 28, 2003 - 12:34 am UTC

I really appreciate Oracle Company, Support and Oracle Development. I am also dealing only with Oracle Products and fan of Oracle. Now you know in every company Oracle and MS are working parallel. So we have to face the MS guys. The thread is "How Oracle Works" so I posted my query here.

Thanks to you Mr. Reader and TOM as well.


R.Chacravarthi, July 28, 2003 - 1:42 am UTC

Dear Tom,
Tkprof stands for Trace Kernel Profile.I hope so.What is your response?
Yours Sincerely,

Tom Kyte
July 28, 2003 - 7:05 am UTC

sounds reasonable.

...and pl/sql ?

ant, September 17, 2003 - 9:18 pm UTC

With all of the improvements to pl/sql in 8i and 9i( like data cartridge "interfaces" and object inheritance ), is pl/sql or the pl/sql "compiler" written in c or c++ ?
Since 8i, pl/sql has more and more of an oo feel to it and i was wondering, underneath it all, is it still just straight c ?

What about the regression test?, September 18, 2003 - 7:16 pm UTC


2 things:

* Could you please tell us a little about the Regression Tests? How exactly are they applied to the new code?

* How does Oracle Corporation protect its source code? I mean, how do you avoid that sombody (like a just fired employee) maliciously steals or distribute pieces of code around the internet?


Tom Kyte
September 18, 2003 - 9:22 pm UTC

o you run a test that has known inputs and known outputs.

if outputs are not right, test failed.

most tests are built from "bugs" -- you build a test case that returns the "wrong stuff". if the wrong stuff comes out -- you know the bug is back.

o same way anyone protects any intellectual property.

How is OEM useful for developers

Do Baat, September 01, 2004 - 1:08 am UTC


Lets make this thread lead to something productive.

Discuss how is OEM useful for developers. I need to convince my manager to give me access to OEM, and it is as much a tool is for developers as for dba's.

Do you have a chapter anywhere which deals with OEM utility for developers. If not, I think you should recommend it.

One thing I have learnt from you and I respect a lot is not to make a point if you cannot back it up with facts or relevant information, but in this thread I dont think you followed what you preach( with regard to OEM's utility for developers).

Tom Kyte
September 01, 2004 - 8:11 am UTC

wow, thanks for your inputs. lets see, the thread is about

"How Oracle Works"

I have often been curious, what language(s) are used to create Oracle at the
lowest levels and up....

this thread never was about OEM, never will be about OEM, there was a passing reference to OEM but that is about it.

There is alot of documentation on OEM however that you might find useful in listing what features you would find useful in your job.

(you know, some mornings.... anyway)

Can you get us autographs of all the original developers?, September 01, 2004 - 8:54 am UTC

We've always been curious, Tom:

What's Larry Ellison's favorite movie?
How tall are you?
If you were a tree, what kind of tree would you be?

Boxers or briefs?

(Sorry, I couldn't resist. No offense to anyone.)

Still on OEM

Ronald, October 15, 2004 - 5:39 pm UTC

I am a fan of Oracle and Tom himself too.
I do agree that Oracle needs to put more effort into their GUI tools, especially Mr. Kyte can actually past the message across with his importance there.
I have been working with Oracle and some MSSQL. DTS is good in a sense of easy of use, It take really much more effect to make SQLLDR to work if the source file change a bit. I also recalled there was documnet in metalink back in some 1999 simply saying use DTS for transfers between Oracle server (I could not find it anymore, and I know Tom hate people cannot show solid prove, sorry), it worked for me since I do not need to worry about how I get those long columns into the text file and read in.
I do have quite some hard times and no sleep nights with Oracle, the OEM was quite broken in those 7.x and 8.0.x days, I did take me a lot of time in order to work out the tricky bit and actually make it work for me (not to mention missing features).
I do understand to maintain a hugh cross platform and complex software is such a great job and they indeed did.
But What the "A Reader" Guy was rather correct There was trace that Oracle is trying to follow how MS is providing GUI, but just not the way they are (they do great front end with lousy backend while Oracle do excellent backend with not-as-good frondends).

Still on OEM

Ronald, October 15, 2004 - 5:46 pm UTC

forgot to mention never successed in getting the Oracle transparent gateway 8.1.7 to work while it’s just a few point and click with DTS.

No Better Tool from Oracle - why???

A reader, April 13, 2005 - 3:10 pm UTC


When we all are proud of and boast that Oracle has the world's greatest and powerful database, why could Oracle not come up with a better querying tool? I have seen tons of users (DBAs/Developers - including me) seeking support of 3rd party tools like SQL Navigator, TOAD, Benthic Golden, TOra, DBArtisan etc etc. Sometimes the database monitoring tools too feel like they provide less info than others. When I am analyzing data, no tool from Oracle is helpful (SQL Worksheet feels like a waste of Oracle's time & resource -- I see nobody using that tool). Cant view data in grid format, neither can export it other formats, least not in CSV.

Having said all this, I am totally a big user, fan & supporter of SQL Plus -- totally independent of any OS -- whether on site or remote login, its great to work with SQL Plus. I always tell my colleagues to learn SQL Plus because some day if they are stuck with a remote login, this resource intensive GUI tools are no good -- SQL Plus is the answer to this. People ask me why do I still use SQL Plus when other tools are available and my answer is "if you haven't worked in SQL Plus, you will never understand the beauty and ease of this tool" :) Alas, the gui is still from Windows 3.11 -- the login window and any window that pops up from the menu bar. Has nobody mentioned or looked at this before?


Tom Kyte
April 13, 2005 - 4:05 pm UTC

have you checked out htmldb's sql studio?

(those guys are working on this very issue, next release is even cooler and the plans for the future look very bright indeed)

No Better Tool from Oracle - why???

A reader, April 13, 2005 - 7:03 pm UTC


Alas, the gui is still from Windows 3.11
-- the login window and any window that pops
up from the menu bar. Has nobody mentioned
or looked at this before?


IMHO sqlplusw.exe (the GUI-enhanced plus) is
crap (but not for your reasons). Therefore I choose
sqlplus.exe (no GUI at all) when I am on Windows.
Gives me the same 'cursoring' abilities as when I'm
on Unix, almost no difference. Try it!


Tom Kyte
April 13, 2005 - 7:31 pm UTC

it is what I use (and sqlplusw is going away)

No Better Tool from Oracle - why???

A reader, June 26, 2005 - 2:19 pm UTC

I agree that Oracle really lacks a query tool. It's annoying trying to find/remember/guess/google what the name of that system view is that contain the information i need or that I need to write a long sql just to see that information.

You might want to look at Tora, which is a recently GPL'ed crossplatform query tool, that is somewhat better than Toad: </code> <code>
The current version of Tora is a little flaky on windows since it uses QT2 (but can rather easily be patched to use the free version of QT3, and with QT4 being free on windows that should go way).

I wish Oracle would think about adopting this tool.

Tom Kyte
June 26, 2005 - 3:09 pm UTC

have you checked out htmldb's sql studio?

(those guys are working on this very issue, next release is even cooler and the
plans for the future look very bright indeed)

A reader, June 26, 2005 - 3:51 pm UTC

I agree with Tom, didn't realized how cool HTML DB was until I installed and started using it. I would say HTML DB team has done a very good job..Keep it up.


No Better Tool from Oracle - why???

A reader, June 26, 2005 - 8:18 pm UTC

When you say "sql studio" do you refer to "sql workshop"?

From what I can figure out from some searching it seems that it is something that would have to be installed on all the servers I would like to connect to, run in a browser, involves a lot of wizards and doesn't even color code when writing sql. I'm sure something tora-like could be implemented in a webapp, using a lot of javascript, but it seems not to be what have been created.

Sorry, I just realized that this is completely off topic for this thread.

Tom Kyte
June 26, 2005 - 8:50 pm UTC

runs in a browser, isn't that like "the coolest thing ever"

I hate client server.


Ex-Ada myself, June 27, 2005 - 9:14 am UTC


You mention you are an ex-Ada programmer. Care to comment a little more. Those are rather rare. When does the (auto)biography come out?? :>)

Tom Kyte
June 27, 2005 - 9:36 am UTC

It was 1990 to 1993, working on a government contract. Ada was the mandated language -- later that was overruled of course.

We used SQL*Module for interfacing to the database (the module concept for sql interfacing was a good idea that never truly caught on, it would have permitted the separation of interface developer from database developer!)

Trying to do X-Windows programming in Ada was really "interesting". It was like fitting that proverbial square peg into a round hole.

I liked generics, the concept of tasking was interesting. All in all, I liked Ada (favorite language is still PL/1).

But C and PL/SQL has been the most useful over time.

Alex, June 27, 2005 - 10:07 am UTC


I was wondering how complicated you think Oracle is. How Oracle Works is a very large topic. I've been working with Oracle for about a year and a half and I'm not even close to being well versed. How many DBAs I wonder are out there that have a full understanding of Oracle? Everyday I probably learn at least one new possible cause for poor performance. Nothing is 100% true in Oracle, it seems everything has it's own specific use, and will be harmful if you're doing something other than the exact scenario it was designed for. It seems so overwhelming to learn all these things. There are about a zillion packages, parameters, alone.

I guess you should try and picture being a mortal Oracle user for this post, and not the world's best.

Tom Kyte
June 27, 2005 - 10:21 am UTC

Have you read the CONCEPTS guide.

Nothing is 100% true *in anything*.

read the concepts guide
retain just 10% of it
and you'll probably know 90% more than most.

Alex, June 27, 2005 - 12:04 pm UTC


Yes I have seen you say that about the concept guide before, I will become more familiar it.

It just seems like the reason you are the best is because you actually seem to know everything about Oracle. I can't really think of anything else like that. It'd be like saying NBA basketball players are the best because they know all the rules, not because they are just better than the rest. Not a very good analogy but I hope my point is clear.

I can think of a few things even in Oracle that are 100% true. I don't have enough experience to comment on much else but, are any of the following not 100% true?

- Never use CHARs
- Never use DMT
- Never use RBO
- Never use hints other than for testing

(I shouldn't have said "nothing" in my above post, contradicting myself a little.)

Tom Kyte
June 27, 2005 - 2:02 pm UTC

is because you actually seem to
know everything about Oracle.

Hah, good one. I wish. I learn something new every day, every single day.

for the never list you have

a) never use chars. That is my recommendation yes. But others might disagree. I have never found a use for them.

b) never use dmts. well, yes and no. Don't create anymore DMT (dictionary managed tablespaces) but don't necessarily convert your 5 terabyte database just because they have DMT's in them.

c) never use RBO. well, unless your 3rd party vendor says "you get no support if you don't" or have some other compelling reason. But yes, in general, the RBO is 'dead' now, long live the CBO

d) never use hints other than for testing. Strongly disagree :) (surprised you there, didn't I)

There are bad hints and good hints. Good hints give the optimizer more information (all_rows, first_rows, driving_site, append,....)

bad hints tell the optimizer what to do (index, ordered, and the like)

bad hints can be used to work around an issue temporarily, they should not be the first line of defense however

Mark, June 27, 2005 - 12:50 pm UTC


Butting in for Tom...

I use CHARs all the time. Example: a US state abbreviation column should be a char(2) because I know it's always going to be two characters long. If I use a varchar2(2) it's more confusing and less self-documenting. Same goes for a 5-digit zip code.

I often use the first_rows hint when paginating query results.

DMT and RBO are still around for backwards compatibility. It seems to me that there will always be cases where you're very close to 100% do not use, but the feature still exists for backwards compatibility.

I guess if something were 100% bad, it wouldn't exist in the first place. :)


Tom Kyte
June 27, 2005 - 2:06 pm UTC

I use varchar2's for those. Never use char's. They are safe for those fields perhaps, but I just stick with a single type.

Guestimate on code size?

A reader, June 27, 2005 - 12:52 pm UTC

1. Could you give a guestimate on how many lines of C code went into the latest release of 10G db server?

2. Understand there is no one "Brain" behind it all. Who then sets the "Vision", is there a committee? Is there a "philosophy" behind it all?

Tom Kyte
June 27, 2005 - 2:09 pm UTC

1) lots :) no guesses -- I'd be way off I'm sure.

2) there are steering committees for various functional areas like availability, manageability and so on. They are backed by customer advisory boards. It would be safe to say the overarching vision still comes from the guy who had it in the first place. The details come from you, me, everyone. The decisions are made by people like Andy Mendelsohn, Charles Rozwat and others.

A reader, May 22, 2006 - 2:45 pm UTC

Would you know what is Oracle Forms 6i written in?
What is Oracle Reports written in?

What are Oracle 10g version Forms/Reports written on?

Tom Kyte
May 22, 2006 - 4:09 pm UTC


they are written on various platforms.

A reader, May 23, 2006 - 1:22 pm UTC

What did you mean "various" platforms, say what is 10g for Windows XP written on, for example?

Tom Kyte
May 24, 2006 - 6:35 am UTC

They asked "What are Oracle 10g version Forms/Reports written on? " - I assumed they meant "what operating systems is forms written on", and the answer to that is "various, it is available on many platforms".

Windows versions of forms would of course be written on..... Well, windows.

Very interesting general history

DJB, May 24, 2006 - 7:15 am UTC


Is there still any mandated language for the DOD instead of ADA ? Wasn't ADA based on Pascal ( which I hated using ) and isn't this also a dead luck now ?

Re the late Ted Codd, his contribution was immense in this field, but it always seemed that when someone claimed to have developed a fully relational model in accordance with his principles he created some more that had to be met !

Tom Kyte
May 24, 2006 - 7:23 am UTC

Pascal rocked - it was cool (but nothing beat PL/I in my opinion)...

There is no mandated language anymore.

No one ever met the rules he laid out - he never really added more, just pointed out where the implementation didn't meet his criteria.

Which is perfectly OK in my opinion. You do not need to meet academic perfection in order to have something that is extremely useful and productive.


A reader, May 24, 2006 - 11:56 am UTC

Why was it dropped - lack of programmers, perhaps ?

Tom Kyte
May 25, 2006 - 7:15 am UTC

lack of industry wide adoption.

Oracle Development Tools

Abdullah, May 25, 2006 - 4:21 am UTC


As you said that Oracle Forms6i and Reports6i is written in C language.

What is the language used to write Forms10g and Reports10g?

Tom Kyte
May 25, 2006 - 1:43 pm UTC


thomas kyte profiler

Bhavesh Ghodasara, May 27, 2006 - 5:05 pm UTC

hi tom,
i am really confused ,tkprof stands for what??

from : </code> <code>

Acronym Definition
TKPROF Transient Kernel Profile (Oracle tool to format a SQL trace)

is it tool kit profiler or Trace Kernel Profile or Transient Kernel Profile???

what i say if somebody ask me that in interview??

Tom Kyte
May 27, 2006 - 9:43 pm UTC

If someone asked me in an interview, I would laugh out loud a bit and say "I know what tkprof is, I know what tkprof does - why do you care if it is an acronym whose definition is lost in history - let me ask YOU - why is dual called dual? Did you know the person that named DUAL that way is only sort of certain they remember why"

trace/transient, all the same to me...


A reader, May 29, 2006 - 5:15 am UTC

</code> <code>

The link which you gave is not working . Please give the correct one so that i can read more

Tom Kyte
May 30, 2006 - 8:05 am UTC

It was the correct link, things age out over time. Apparently, this one did.

the 01-nov is for "November 2001".

Seems to still be in the google cache however

</code> <code>


Bharti, July 18, 2007 - 2:13 am UTC

Hi Tom,

its really very inetresting to know abt Oracle, how it was developed & its really great. I wish to know abt Oracle on Linux...

Actually, I have installed Oracle server on Linux & I wish to access the database on a different system which is on network but not a client. I wish to have an SQL prompt at my machine so that I can issue commands from there. How could i get that.
Tom Kyte
July 18, 2007 - 10:27 am UTC

... which is on network but not a client. ..

does not compute.

Digging up the old Oracle History article

George, April 27, 2009 - 12:03 am UTC

Now, even the Google cache of the page about Oracle History is unavailable, so use the "Wayback Machine" to find it:

Odd that the US's Oracle Magazine articles seem to go back only to 2003 online now, but that 2001 article is still up on the Russian Oracle site (but published there in Jan 2002):

Tom Kyte
April 27, 2009 - 2:08 pm UTC

depends - my list goes back to 2001


A reader, April 27, 2009 - 4:09 pm UTC


You say that oracle database is mostly written and still written using C.

How about the middleware (app server adn mod_plsql)? is this also in C.

It seems C is still a popular language until today.
Tom Kyte
April 27, 2009 - 4:42 pm UTC

C is excessively popular, as is C++

And the modules are coded in that, as is the core apache.

C Coding

Vis, April 28, 2009 - 6:59 am UTC

Hi Tom,
Could you provide me some links/docs, which will help me become a master coder in C ( somwht like u guyz).
I have learned upto arrays, pointers, I/O files etc in my academic years. I want to learn more hard stuff of C now which is needed in writing stuff like ORACLE itself.
Tom Kyte
April 28, 2009 - 10:12 am UTC

the best way (the only way if you ask me)

get a job coding in C, ensure you have a good mentor at this job, write code for money. Work on as many projects of differing requirements as possible.

In fact, to generalize, just change C in the above to *anything*

C coding

Vis, April 29, 2009 - 5:31 am UTC

I totally agree with u Tom.
But the thing is I am in Oracle admin job now and i think will never get a chance to learn C here.
I left my C pgming in college and entered in this admin job.
But now as I may get some time from my usual admin job, want to utilize that to learn "the enhanced" part of C, on my own ( through net, books etc).
You would have also referred some nice books/docs in ur early part of curving tenure, for learning advanced part of C lang.
Please suggest me something like that.
Tom Kyte
April 29, 2009 - 9:14 am UTC

"U" isn't available, "U" is dead as far as I know. Look it up, it is true.

Vis - then the only thing you can do - if your dream is to be a C programmer, is to get a different job, or a job on the side.

I read one book on C, it was the K&R C book. Everything else was "on the job". Unless you have a real project, something *real* to build - and many different real things (breadth of experiences), I don't think you can say you are a programmer in that language.

I think the only thing you can do is either switch jobs OR get some work on the side (turn that 'free time' into 'work time') and have something real that needs to be written - with a mentor that can review your code and guide you as to a better way to do things.

About Oracle

Kamran Agayev, May 26, 2009 - 11:21 am UTC

Hi Tom
Can you answer:

1. How many programmers (approximantely) worked on creating Oracle 10g and how many years it took them to finish it?

2. In every version, (even in every release) we see a lot of structural changes in Oracle Database. "Who" thinks about this features? Who suggest to create such features? How can "we" suggest to Oracle to add a feature to the next Release/Version :) Have we chance?

3. I'm reading your Expert Oracle Database Architecture book and I have some questions to you about this book. I didn't find any topic/discussion on this book. Under which question/topic can I give you my questions?

4. How you hire to a job for Oracle Support? Are you ask an interview from anyone? If yes - what's your main questions about?

5. Why you didn't get any certifications (OCP, OCM) or titles (ACE, ACE director). We know, you don't need it. Is there any other reason?

Thank you very much

Tom Kyte
May 26, 2009 - 11:48 am UTC

1) thousands - 30 years (10g is a result of 9i is a result of 8i is a result of 8.0 is a result of ....)

2) You do, I do, the market does, the customer advisory boards do, our competitors do.

3) first, try searching on this site - most questions have been asked. And when you find something relevant (close), but doesn't quite answer it, feel free to ask for a clarification there - but do SEARCH first.

4) I do not hire for support - not in my job description

5) you answered it already.


A reader, May 26, 2009 - 5:15 pm UTC

Dear Tom,

I am using Oracle 9i and I would like to know where Oracle put the database with it tables, in which directory or repertory in the C drive and how to access from the tools in the Start menu.
I am not sure about the service, please if this e-mail not have been for you, could you forward it to the appropriate dept.


Tom Kyte
May 26, 2009 - 5:35 pm UTC

Simon - first, this is not "support" or a "help desk", there is no "right" department to forward this to. This is a forum - I answer when I can and if I can.

Second, you told us where to put the files - we do not "put" them anywhere until you tell us to. When you used DBCA to create the database, you had complete control over that.

You can log into the database using sqlplus (or whatever tool you want) and type "select * from dba_data_files", that'll show you where they currently are.

Not sure what to say about "how to
access from the tools in the Start menu." - I'm not sure what you mean by that.

Reply to Simon

Kamran Agayev, May 27, 2009 - 8:03 am UTC

Oracle tables are logical objects, not physical. That's why, you cann't find "them" anywhere. They are logically in datafiles. Use OEM (Enterprise Manager) to get list of tables. They are in datafiles and they're stored there logically

Oracle Designer Suite

Simon, June 03, 2009 - 9:27 am UTC

Hi Tom,
Didn¿t know that this is just a forum but thankfully the second reply answer my question, I am learning Oracle on my own after some knowledge from uni. I am having this error when trying to login to the Designer: ¿This user does not have an installed repository. Invoke the repository administrator utility¿. Is that possible to change the SYSTEM or SYS as a user name to my own, as I¿ve already created many tables (it should have been changed at the end of the installation) ¿ Thanks


Tom Kyte
June 04, 2009 - 10:27 am UTC

please utilize the discussion forums on for this one - sorry...


Vip, June 05, 2009 - 7:25 am UTC

One of the best threads that I have read so far.... :) ..

Kudos to Tom for this forum... :)

Oracle origins

Egor, December 16, 2012 - 5:11 pm UTC

you said that the first Oracle version was written in Fortran.
In "The 1995 SQL Reunion" paper I found the following words of Roger Bamford: Version 2 had been written in assembly language for PDP-11.

I'm sure you have access to information about early days of Oracle. Could you please clarify this point? It's very interesting, but trustworthy information is so hard to find.


P. S. "The 1995 SQL Reunion" can be found here:
Tom Kyte
December 18, 2012 - 12:17 pm UTC

I went back and checked some notes....

... . While much of the system was written in PDP-11 assembler language, parts were developed in the emerging new language C ....

so, I've updated my slide - it was pdp-11 assember and C and was from there ported to VAX.

thanks for the followup on that detail!

Looks C is not the only language used in 2018

Kalyan, September 28, 2018 - 6:41 am UTC

As per the following internet document C++ is used now-a-days?
Connor McDonald
October 01, 2018 - 2:27 am UTC

I've asked around internally - all the source code that any of those with access to have responded with is C. So I think that website may be mistaken - they might be confusing it with the precompiler support we offer.

More to Explore


Need more information on Administration? Check out the Administrators guide for the Oracle Database