• Quick note - the problem with Youtube videos not embedding on the forum appears to have been fixed, thanks to ZiprHead. If you do still see problems let me know.

Database talk: why use one over the other?

Actually, if IBM is to be believed, that's not true:

"A set of attributes that represent a business entity (such as Employee), an action on the data (such as a create or update operation), and instructions for processing the data. Components of the business integration system use business objects to exchange information and trigger actions."

I would basically translate this to mean what these are to BI, words are to the English language, ie they can be nouns or verbs or etc.
 
[If I get any technical details wrong, please attribute them to incompetence and not malevolence. Also, I have a Computer Science degree from CMU and have been a DBA/Database programmer for only 2 years.]

The thing you have to realize about Oracle is this: how much do you trust the managers at your business to choose the best technology for the job? I've worked with a number of database, and I don't want people to think I'm just trolling so I'm going to provide as much 'evidence' as I can, but I've got to tell you that I think that Oracle has got to be some of the worst software on the market. I'm pretty much convinced that this is how managers choose software: vendors approach them, and they choose the ones that flash the most lights at them or use the most buzzwords.

At work we are forced to use Oracle databases because of our contracts and because that's what our managers tell us to use (there's projects where I get to choose the database, others where I don't; you know what I mean.) Oracle's database frontend is SQL PLUS. I mean the following statement in all seriousness: If I were a college professor and there was an assignment where the students had to make a database frontend and a student turned in SQL Plus, I would give him a D. That's right. At least once a day while using this software, all I can think about is how I think I could personally program something better. And I don't consider myself a very good programmer. [Side node: I'm probably what you consider an open-source zealot. I think that if Oracle were open source, I would be able to write a better database client and do my job better, and I think that this is the philosophy and motivation that causes open source software to be sucessful.]

Now, what I'm pretty versed in all sorts of software, and what I feel that what I've written above is enough to convince everyone on the plant not to use Oracle's sofware. [This is where the zealotry comes in.] There's a few more things: SQL Plus doesn't allow you to cancel a job. This would be fine, except for the fact that some database-runs take hours! I'll run a stored procedure, and after six hours decide that I've made an errors and should use something else. But I can't fix (change) the script and reload it. And you know why? Because you can't 'rename' a script while that script is running. And the only way I can cancle a script from running is by walking down to the DBA's office and ask them to stop it. Have I mentioned how overworked the DBA already is? Or how she sometimes takes vacation or how I like to come into the office early in the morining and the DBA doesn't show up until 10?

Now, onto the Oracle error messages. When Oracle encounters an error, it gives you a numbered code and an error message. Now I've searched everywhere but cannot find a list of things that cause these error messages. In fact, if you Google for them, almost all the results are other web pages displaying that error message. There's even a website that makes its income from traffic of people searching for these error codes (oracodes.com). I have never been able to figure out what these codes mean or what causes these errors. That's right, they're undocumented. Ask your developers how they feel about about undocumented error messages. (Actually, don't they may hurt you... or me....)

Luckily, I've never had to decide what database to use on a large project. All I know is that there is that the differences between Oracle, mySQL and Postgres are minimal from a programmers standpoint: they should all accept standard SQL and process it the same way. (I'll leave which databases do this as an exercise for the reader.) When it comes down to it, I believe that you should use what your average developer wants to use. The problem is when Oracle will hold training days about how to use their product and trick managers (and developers) into choosing their software.

I feel that I am competent enough to evaluate different databases, and it boggles my mind why anyone would choose Oracle. Sure, if your staff of 100 DBAs only knows how to use Oracle, choose it; what do I care. But you owe it to your company to figure out the best choice and shouldn't just listen to what salesmen tell you. And if you're an individual user, fire up SQL Plus and any open-source-software-database client and I'll give you a hint: from the command line, when you hit up, you should be able to display the previos commands you've entered, and when you hit the left arrow, it should move the cursor to the left and allow you to edit the command-text you've already entered.

Now, JDeveloper is a whole nother can of beans, but this thread is about databases.
 
:eye-poppi

I'll let people who are capable of digesting that and answering intelligently step in. I sure as hell don't qualify.
 
I'll address some of the points tomorrow, but for now I will simply say that SQL*Plus is an old end-user (end-programmer, really) tool. IMHO, it exists to fill a backwards compatibility need. There are far better tools out there for interacting with the database. Ones with real GUIs, even. I have plenty of negative things to say about Oracle, but I would not use the features of SQL*Plus as a reason to choose one database or another.

CriticalThanking
The Bane of Database Salespersons since 1984
 
I recall from using oracle as the Database for an SAP system there was a unix command to list the message related to the Oracle code. IIRC, 'oerr' or 'oraerr'. Oracle goes back a long way, so it carries a lot of baggage. SAP was kind enough to write it's own command line front end to carry out most of the Oracle day to day maintenance called 'sapdba'. I don't know why Oracle is so popular compared to, say DB2. It costs enough.

Most places that are serious about using it, that is, developing systems with it, not just using it as a backend to SAP, also buy the many third party management tools out there, which only exist because Oracle does not supply them. There is a long history of third party applications being developed for products like Oracle, going back to the IBM days. Whenever you bought an IBM product, such as MVS, CICS or DB2, the next guy to walk in the door was the salesman selling you a product designed to make the first thing you bought easier to use.
 
Now, onto the Oracle error messages. When Oracle encounters an error, it gives you a numbered code and an error message. Now I've searched everywhere but cannot find a list of things that cause these error messages. In fact, if you Google for them, almost all the results are other web pages displaying that error message. There's even a website that makes its income from traffic of people searching for these error codes (oracodes.com). I have never been able to figure out what these codes mean or what causes these errors. That's right, they're undocumented. Ask your developers how they feel about about undocumented error messages. (Actually, don't they may hurt you... or me....)

In addition to the oerr utility, you can look these up in the oracle manuals. Ask your dba to make these available online.

Not only do they tell you the error message, often the manual will provide guidence as to the likely causes, and how to fix them.
 
In addition to the oerr utility, you can look these up in the oracle manuals. Ask your dba to make these available online.

Not only do they tell you the error message, often the manual will provide guidence as to the likely causes, and how to fix them.

If you prefer a GUI frontend for Oracle dev'ing consider TOAD. For error codes, etc. look to metalink.oracle.com and the oracle kb containing all of their books in online format. Also, TOAD comes with a kb tool called, iirc, Knowledge Quest that also contains the errors codes.

Frankly, you can do _everything_ you need to do in Oracle with SQL Plus, but it is a matter of knowing the rdbms and commands inside and out.
 
If you prefer a GUI frontend for Oracle dev'ing consider TOAD. For error codes, etc. look to metalink.oracle.com and the oracle kb containing all of their books in online format. Also, TOAD comes with a kb tool called, iirc, Knowledge Quest that also contains the errors codes.

Excellent advice. Also, if you are doing any integration with the Oracle Apps, irep.oracle.com can be quite useful. ;)
 
Excellent advice. Also, if you are doing any integration with the Oracle Apps, irep.oracle.com can be quite useful. ;)

I don't think I can overemphasize the use of Metalink and the online books. Just this week we (the company I work as a dba at) just turned on asynchronous I/O and expanded our Oracle memory allocation to >1.7 gb. Both of those sources were invaluable tools for making that process go smoothly.
 
If you prefer a GUI frontend for Oracle dev'ing consider TOAD. For error codes, etc. look to metalink.oracle.com and the oracle kb containing all of their books in online format. Also, TOAD comes with a kb tool called, iirc, Knowledge Quest that also contains the errors codes.

Frankly, you can do _everything_ you need to do in Oracle with SQL Plus, but it is a matter of knowing the rdbms and commands inside and out.
I'll vouche for that. When it comes to tools for databases, there isn't anything that even comes close to TOAD for Oracle. I usualy have to work with Oracle and when I have to do something in MySQL or other databases, I feel like I've gone back to the stone ages because I can't use TOAD for Oracle. The TOAD for MySQL isn't that good, the free stuff is comparable.

That being said, database choice should be approached from "how is it going to be used" and "how many people will be using it simultaneously" rather than which is the best database. There are better databases for different purposes and of those, there are more economical choices that will do what you need.
 
Last edited:
When it comes to tools for databases, there isn't anything that even comes close to TOAD for Oracle.
You meant to say there isn't anything that even comes close to TOAD for Oracle that you know of, right?

PL/SQL Developer by Allround Automations in the Netherlands is an Oracle development tool that I highly recommend for anyone developing against Oracle. In every case where I've told a developer who was using TOAD free about the PL/SQL Developer product, he's gone out and bought himself a copy after playing with it for a day or two.

You can download the full version from their site and play with it for a month for free, and at US$180 for the full version it's a bargain compared to the commercial edition of TOAD.
 
Actually what you don't understand is how little I know about databases in today's IT world. :o I thought Oracle was its own thing, ie didn't use a SQL variant as its language (or is it "standard"/ANSI SQL, assuming there is such a thing?).
 
Actually what you don't understand is how little I know about databases in today's IT world. :o I thought Oracle was its own thing, ie didn't use a SQL variant as its language (or is it "standard"/ANSI SQL, assuming there is such a thing?).
Oh, OK. Yes, the flavour of SQL used by Oracle is called PL/SQL, the "PL" bit just stands for "Procedural Language" (if my recollection is correct), which means it stands for nothing at all when you think about it. Stored Procedures are written in a procedural language... who'd have guessed?

PL/SQL is a knock-off of ADA, so when you're going for those big missile defence contracts you can say you've written ADA code if you ever wrote stored procs for Oracle.

SQL Server and Sybase uses a flavour of SQL called T-SQL, the "T" stands for "Transact" so it doesn't mean much either.
 
Most databases these days comply with some of the ANSI SQL-92 standard. The basic Data Manipulation Language (DML), the SELECT, INSERT, UPDATE, DELETE statements use pretty much the same standards across products. At the time of omplementation, the OUTER (and LEFT and RIGHT) JOIN syntax was undefined by ANSI, so Oracle used the "*=" (or "=*") notation.

It is many other things that make SQL usefull that have no standards. Suppose you want to bring back a limted sample of rows, say, 20 out of the entire set. SQL Server has several options - "SET ROWCOUNT x" as a standalone statement, or the "SELECT TOP x" construct.

That doesn't even cover most of the non-standard field datatypes in each product. In addition, Data Definition Language (DDL) such statements as CREATE/DROP TABLE/INDEX, and object partitioning are very different from product to product. It makes portability more difficult.

SQL is by definition non-procedural. So all those usefull programming tricks like assignment, conditionals, and looping structures have no ANSI standard in SQL. Each product has its own flavor.

CriticalThanking
 

Back
Top Bottom