Why the I-Hate-Oracle Club?
-
Why? Because I hate Oracle. I hate how it works. I hate its name. I hate the logo. I hate Larry Ellison. I even hate The Oracle from The Matrix.
Good to get that out of the way. But I figure, with all of the people out there touched by Oracle, there's gotta be a whole lot who hate it as much as I do. Or, a the very least, have an utter discontent for it. So that's what this is all about: sharing your ramblings about the product/company or, if you're brave, sticking up for the absurdity that has become Oracle. If you want to become an official member, simply reply here.
And believe it or not, I actually have some rational reasons to hate Oracle. So, let me start out by sharing just a few of them themIt’s from the world of UNIX and makes sure you know it
UNIX isn’t just another platform, it’s a whole set of cultural values. Although I respect the other side, I just prefer move, copy, and delete instead of mv, cp, and rm. But not Oracle, goodness no; it came from UNIX, and by golly, it’ll act like it. It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.” Its screens don’t look like normal windows. It even refuses to put itself in just as old “Add/Remove Programs” list. And the list goes on. Just to contrast, look at Microsoft’s Office:mac; even the website doesn’t look like Microsoft. Now that’s respect for another culture.Just use the command prompt, sissy
Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt? Because real developers don’t need no stinkin’ tool. Unless you’re a “real” developer, you’re forced to use a third party tool. And just take a quick look at the number one tool. Seriously. Don’t let the “I let my kid design my brand” look fool you, it’s like $1,500 or so. The site doesn’t list prices, so I think we know what that means.I can’t figure the damn thing out
Oracle was kind enough to send a personal edition of their product for me to try out. I installed the whole 2GB bloatware package, guessing on most of the configuration options which provided no defaults. It had a handful of programs it installed, but knowing none actually do anything database-wise, I went directly into the SQL*Plus command prompt. After an hour of figuring out how to connect to myself, I still couldn’t figure out how to get the thing to connect as a SYSADMIN to so I could run some DDL SQL scripts. I don’t think it’s even necessary for me to mention I learned all I need to know about being a DBA (from creating maintenance plans to replication) by just clicking around in Enterprise Manager and reading context-sensitive help.Optimize it yourself, idiot
I’m going to write a whole separate post going into more detail than this. But, it would seem that real developers don’t need no stinkin’ query optimizer guessing which indexes to use where. I can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus because I accidentally had a non-indexed column in the SELECT list, causing a FULL TABLE scan. Apparently, it’s not up to the database to use an index to filter by row, then select columns from the filtered rows.The VARCHAR2 Type
Seriously. Thank goodness they don’t have power to name types outside of their database. I could just picture it, a String6 is just like a String4, but concatenates differently (like the now-obsolete String2 did).The regular “Health Check-Ups” best-practice
I’m going on the word of a few Oracle DBA here, but they claim that it’s a best-practice to have a high faulting consultant (an Oracle Oracle if you will), come in semi-annually and check the health of your database. I’m all about going to the auto mechanic regularly and having the HVAC guy come over once in a while. But that’s because those cars and heaters cannot possibly maintain themselves. Shouldn’t advanced software be able to perform self-maintenance?It’s an insult to Computer Science and the Relational Model
As our favorite Oracle guru puts it, “One of the remarkable extensions of the Oracle database is the ability to reference Oracle objects directly by using pointers as opposed to relational table joins.” I’m sure I’ll write about this more later, but the insults continue with the instance of using row numbers and the abomination of nested tables. Yes, it takes a lot to create something that doesn’t adhere to First Normal Form. No wonder Mr. Burleson needs consultants like himself to come in later and fix the mess he made.UPDATE:
T-Shirt + Mug avaiable at http://www.cafepress.com/oraclehaters
Fun Logos at http://thedailywtf.com/images/ihoc
-
And check out the Toadsoft feature list.
"Syntax errors in SQL statements are highlighted," they say. Then, four lines later, they count "Syntax errors in SQL statements are identified" as a separate feature. Wow, I'm sure glad they identified the errors before highlighting them, otherwise who knows what could happen.
But best of all was their pride in "Resizable windows." Dang, I bet all those other database tool vendors are kicking themselves.
-
Toadsoft works for SQL Server!
WTF, SQL Server comes with a tool for managing the DB.
Enterprise manger is not my favorite app. I often say that the reason it is so hard to use, compared to the data tool in VS.Net and Interdev, is because the are competing with Oracle.
At work, they were seriously looking at buying Visual Studio.Net Enterprise for the whole Java team because Toad was so expensive. I think they settled on just giving it to the DBA.
-
Here is why I hate them:
Runs on Linux?
Only supported on one 'flavor' of Linux (Redhat Enterprise) that isn't free. Isn't this against the Linux credo?Development Tools For Installer?
Requires the developer tool when installing on Linux (it compiles itself during install). Microsoft would be burned at the stake for requiring a compiler to install...also it is a security hole, no? The hipocracy of Oracle?
Requires Consultant to Install
Stock Linux installations will not allow Oracle to start. Becuase I am not a Linux haxx0r, I had to get an Oracle consultant in to get that part to work. Shouldn't software install without a consultant?No Batch ResultSets?
No batch result sets without REF CURSORs...Give me a break.Lousy Tools
Completely unintuitive toolset.Java Stored Procedures?
Java Stored Procs have to have a wrapper PL/SQL Stored Proc to call them...d'oh!
-
Count me in.
I started with an open mind, I honestly did.
I sooo wanted to like Oracle. Although I have a Microsoft/SQL Server background, I'm a big fan of open source and the various UN*Xes.
Everyone seemed to have Oracle on their resume. The whole industry seemed to love it. Lots of articles in CIO-friendly magazines like "InfoWeek" mentioned "exciting" buzzwords like "ROI", "scalability", "extensibility", "leveragability", "ittybittyability" (OK, the last one's a joke.)
Then I started on my first huge Oracle project, and ended up posting this about a month ago:
http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=274262
To the comments in that posting and what other people have said, I'd like to add:
- Yes, the Java-infested installer is horrible. Small consolation that it probably looks consistently horrible on all platforms.
- The admin "tools" (isn't a tool something that's supposed to make your life easier?) refuse to run as a non-privileged user, and don't install by default under "Program Files", as someone else mentioned, in flagrant violation of all standards.
- PL/SQL is based on Ada, which was probably a good idea back when people thought pet rocks were cool too.
- The whole thing seems like 'Consultingware' (see 'Joel on Software'). How often does a company have to call in an army of high-paid consultants (must...avoid...linkinking...to...redneck guy...) to fix their SQL Server installation?
- The data type issues have already been mentioned, and the wonderful mandatory 'REF' cursors.
- I hate the ongoing FUD campaign (yes, beating Microsoft at their own game...) which vaguely implies that Oracle is wonderful and scalable, whereas SQL Server is little more than a desktop database; this is, of course, gobbled up by technologically clueless decision-makers.
- The client-side footprint is ridiculous. If you install the Oracle CDs, you're in for about 700MB; even if you avoid this deal-with-the-devil and sneakily install ODP.NET just to get the client-access libraries, you're still giving up a couple hundred MB of disk space.
- SQL+ would be hilarious if I didn't have to use it. What's up with the line editing commands? Does it think it's still running on a dumb terminal, like an emulated arcade game running under MAME?! I had a friend at college who masochistically wrote his entire final-year programming project using 'sed', the UNIX line-editor. I feel a bit like him when using SQL+.
- Lack of a built-in, returnable 'boolean' type.
- The naming of everything with underscores -- my_value rather than MyValue. I know this is personal preference but it still irks me.
- Declaring package headers and implementation separately -- didn't we decide, post-C++, that that's not a good way of doing things.
-
Darn, this should have been in the 'membership' thread. Alex, could you move it please?
-
I can't quite agree with you that Orrible comes from the Unix world. Those of us who have lived there for a while curse it's origins in the Mainframe world. Especially those of us who used Informix and have seen how well a database can be made to work in it's native environment.
One of my favourites is the SqlMinus buffer editor. Pop it open and you are in $EDITOR, save it and run it. Alas, it doesn't use a temporary file handle, the file name it saves the sql buffer to is afiedit.buf... In the local directory. Oh, you don't have permission to write there? Ooops. Oh, someone else already had one there? Double oops.
I could go on for a very long time. Maybe I will someday. [H]
-
I can't join the I-hate-Oracle club as I've never managed to install the Developer Edition on a machine powerful enough that it runs. The last time, we installed on a 192MB RAM 600MHz box, that we often use for test runs with SQL Server 2000 (for small to medium scale systems). On this system, SQL Server 2000 takes 4 seconds to create a database (SQL Server creates a new database by making a copy of model). By contrast Oracle took all night (by which I mean 6+ hours) and still failed when the machine's DHCP lease ran out (the crappy Java client tool connected to the server on the same machine using TCP/IP).
So, I don't hate Oracle - but I'm not exactly motivated to find out.
Incidentally SQL Server 2005 runs quite happily in a 192MB Windows Server 2003 virtual machine on this 850MHz AMD Duron box (which has quite a lag on this editor!) I get the feeling SQL Server 2005 is going to blow Oracle out of the water.
-
Here are some of my favorites;
1. Sequences
2. Cursors
3. PL/SQL
4. SQL+
5. Online documentation that refers to specific document numbers that do not exist.
6. Arrogance without end
7. =,=
8. tnsnames
Ack, it's like they wrote the book on how to be counter-productive.
-
I actually like sequences, much more than identity in Sql Server. Cursors suck, agree. PL/SQL sucks, but TSQL sucks more. SQL+ also sucks. Metalink docs are useful, only because Oracle is so hard to use. Arrogance... amen to that. Haven't really noticed #7 on your list. Haven't messed a lot with TNSNames yet.
-
@Darren said:
call in an army of high-paid consultants (must...avoid...linkinking...to...redneck guy...) to fix their SQL Server installation?
I HAVE TO!!
-
@Goff said:
1. Sequences
While the IDENTITY column implementation is cleaner, sequences are more powerful and more flexible.
@Goff said:2. Cursors
They suck in SQLServer as well
@Goff said:3. PL/SQL
Sorry - PL/SQL is tons better than T-SQL
@Goff said:4. SQL+
Absolutely! Positively! There is no possible excuse for that abomination.
@Goff said:5. Online documentation that refers to specific document numbers that do not exist.
They are anti-anything MS, and so have embraced HTML as their 'open standard' for documenation. The problem is that they have so damn much of it that they are constantly breaking their links, etc.
@Goff said:6. Arrogance without end
Similar things can be said about Mein fuhrer Gates, but I definitely agree
@Goff said:7. =,=
Uh, those are SQLServer's constructs. in pre-ANSI*92 syntax, Oracle uses a (+) after the table name for outer-joins - no more intuitive than =. = in that respect.
@Goff said:8. tnsnames
Agreed - so don't use it.
Again - just trying to keep the arguments honest,
- Chris
-
@ChrisRLong said:
just trying to keep the arguments honest
But this forum isn't supposed to be about honest debate [;)]. MS-Haters have Slashdot. Oracle-Haters are at least a bit more honest sounding with "I Hate Oracle Club."
Speaking of slashdot MS-Haterz ... here's a fun +4, Insightful. So, , "-1, Troll" for your rational not anti-Oracle enough arguments [:P].
-
Ah.
My most humble apologies.
"Bloody Oracle SUX!!!"
Better? ;D
- Chris
-
-
I just remembered another thing that pisses me off: the stupid format of the tnsnames.ora file (not to mention the filename - what kind of file extension is ".ora" ?! ["It's tnsnames.ora's file extension, sir." </Catch 22> ] )
I know XML was only released a few weeks ago, and it's new-fangled and all, but you'd have thought they might have at least considered it for tnsnames.ora by now.
-
<font color="#0000ff"> I know XML was only released a few weeks ago, and it's new-fangled and all, but you'd have thought they might have at least considered it for tnsnames.ora by now.</font>
Hey, got another idea, how about we give it a kind of goofy LISP-like format? Miss a paren? Guess what ain't going to work for you?!
Hey another good one- easy way to sell those Oracle Professional Services guys- let's make it easy to install the client to a different location on accident and let's make it so that you have to guess which TNSNAMES.ora is actually being used at the moment!
And then, just to piss people off, let's change core filenames a lot. You're all familiar with TNSPing.exe? Great! Let's make it TNSPing80.exe! Now we're talking. THEN- just to make it easy for the people selling software that's expected to be generically used with no particular version of Oracle, let's change all the client access DLL's with each version! Orcl can bankrupt the ISV's that use their data access lib's through their helpdesks!
-
@Alex said:
It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.”
Please tell me you're joking. This is a Windows cultural
VALUE? Most Windows people hate this damn thing because the space
screws everything up.
You can also configure the Oracle base directory when installing your
software. Though, like most software, it probably wouldn't like a
path with a space in it.
@Alex said:Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt?
OEM ? SQLPlus Worksheet? ISQLPlus?
@Alex said:and just take a quick look at the number one tool.
Seriously. Don’t let the “I let my kid design my brand” look fool you,
it’s like $1,500 or so. The site doesn’t list prices, so I think we
know what that means.
TOAD is free for the base version, which is why it's so popular.
@Alex said:I can’t figure the damn thing out
That would be your problem, not Oracle's. Plenty have figured it out,
it's also the most documented and written about database in the world.
@Alex said:After
an hour of figuring out how to connect to myself, I still couldn’t
figure out how to get the thing to connect as a SYSADMIN to so I could
run some DDL SQL scripts. I don’t think it’s even necessary for me to
mention I learned all I need to know about being a DBA (from creating
maintenance plans to replication) by just clicking around in Enterprise
Manager and reading context-sensitive help.
Right, because it's so much fucking work to read a goddamn QUICK START
guide or CONCEPTS manual that explains excatly how Oracle works, inside
and out, in plain english. Your heart bleeds for me, really.
@Alex said:I
can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus
because I accidentally had a non-indexed column in the SELECT list,
causing a FULL TABLE scan. Apparently, it’s not up to the database to
use an index to filter by row, then select columns from the filtered
rows.
Actually, it is up to the database. But you would need to
gather statistics on the tables (which you need to do in SQL Server
too). in 10g this is automatic, but in 9i it's a simple PL/SQL
call or OEM click.
And full table scans aren't necessarily bad, they're appropriate in some circumstances.
@Alex said:But
that’s because those cars and heaters cannot possibly maintain
themselves. Shouldn’t advanced software be able to perform
self-maintenance?
Right. Do you know how adorable you're being right now ?
Please point me in the direction of software that does this.
And I have no idea where you came up with the "bring in a health-check
consultant" line. Learn the f'ing database, all the documentation
is FREE, the database download is FREE, and there are hundreds of books
on the topic, and decades of usenet posts, and dozens of
websites. Get off your ass and learn the thing, make some
money, and stop whinging.
@Alex said:I’m
sure I’ll write about this more later, but the insults continue with
the instance of using row numbers and the abomination of nested tables.
Yes, it takes a lot to create something that doesn’t adhere to First
Normal Form. No wonder Mr. Burleson needs consultants like himself to
come in later and fix the mess he made.
Nested tables are an area of active research by database theorists and
have been argued to be "OK" by many theorists. Pointers (REFs)
OTOH aren't, they're a hack, use them at your own peril.
Burleson is stopped understanding Oracle 8 years ago. I'd ignore him.
In summary, I think if you spent more time learning and less time
whining, you'd be much happier in your job, make more money, and may
actually get productive, as opposed to the sorry state you seem to be
in at the moment.
-
@Darren said:
Yes, the Java-infested installer is
horrible. Small consolation that it probably looks consistently
horrible on all platforms.
Whatever. It does the job. Live with it.
@Darren said:The admin "tools" (isn't a tool something that's
supposed to make your life easier?) refuse to run as a non-privileged
user, and don't install by default under "Program Files", as someone
else mentioned, in flagrant violation of all standards.
ALL STANDARDS? WHAT FUCKING CRACK ARE YOU ON and can I have some? "Program Files" is a silly abomination!
And you can configure where Oracle is installed.
@Darren said:PL/SQL is based on Ada, which was probably a good
idea back when people thought pet rocks were cool too.
Right, only all of the world's military systems are written in Ada. Go back to VB, bubba.
@Darren said:How often does a company have to call in an army
of high-paid consultants (must...avoid...linkinking...to...redneck
guy...) to fix their SQL Server installation?
About as often as Oracle, actually, if you have a serious
database. And more if you have a very serious
database. Ask Verizon how much money they sink into their
SQL-Server based billing system, which was chosen for non-technical
reasons?
@Darren said:The data type issues have already been mentioned, and the wonderful mandatory REF cursors.
Holy crap, this is stupid. Let me spell it out for
you: a REF is a pointer stored in the database. It
violates the relational model, it's evil, etc. a REF CURSOR
is just a technique to return a cursor to a client in
PL/SQL. THEY ARE NOT RELATED.
@Darren said:The client-side footprint is ridiculous. If
you install the Oracle CDs, you're in for about 700MB
Finally, a valid criticism! Yes the client install is
big. 10g has fixed this with a small footprint install ,
optional.
@Darren said:SQL+ would be hilarious if I didn't have to use it. What's up with the line editing commands
"What's up with programming languages that are textual, can't we just program with bubbles & lines???"
@Darren said:The naming of everything with underscores --
my_value rather than MyValue. I know this is personal preference
but it still irks me.
You irk me. Life sucks, get a helmet.
@Darren said:Declaring package headers and implementation
separately -- didn't we decide, post-C++, that that's not a good way of
doing things.
What bizarro world do you live in? Separation of interface
and implementation is the core concept of modular programming AND
object oriented programming. C++ HEADERS have nothing to do
with INTERFACES, dumbass.
-
@Mike Dimmick said:
On this system, SQL Server 2000 takes 4 seconds to create a database (SQL Server creates a new database by making a copy of model).
By contrast Oracle took all night (by which I mean 6+ hours) and still
failed when the machine's DHCP lease ran out (the crappy Java client
tool connected to the server on the same machine using TCP/IP).
A "database" in SQL Server terminology is just a logical grouping of
database objects, users, and data files. Closest thing Oracle has
to this is the "schema" , which is private to a user. It's
a different thing that an Oracle database instance, which is the
equivalent to creating a new master SQLServer database.
Creating a new Oracle DB shouldn't take 6 hours, though.
Something failed along the way, might be a network thing , etc.
There are logs that you can read to find out.
Cheers.
-
@swami said:
It's a standard, even. And most Windows users don't care about the space in the name.
Please tell me you're joking. This is a Windows cultural VALUE? Most Windows people hate this damn thing because the space screws everything up.You know, GUIs and all that. Kind of a wonderful invention, you know.
You can also configure the Oracle base directory when installing your software. Though, like most software, it probably wouldn't like a path with a space in it.
Windows software that can't tolerate spaces in filesnames is in the minority these days.
That would be your problem, not Oracle's. Plenty have figured it out, it's also the most documented and written about database in the world.
To me, the fact that so many people have had to write about it tells me it's very difficult to figure out and use. Oracle is an extremely complex beast, evidenced by the fact DBAs frequently can't do development roles, and developers frequently can't do DBA roles. Which is just silly when you think about it. Save for initial setup and maintaince (which really should be automatic) all the DBA should ever have to do is change the backup tapes.
<FONT size=2>
Right, because it's so much fucking work to read a goddamn QUICK START guide or CONCEPTS manual that explains excatly how Oracle works, inside and out, in plain english. Your heart bleeds for me, really.
Except it doesn't. It explains the how, not the why.</FONT><FONT size=3>
</FONT><FONT size=2>
Actually, it is up to the database. But you would need to gather statistics on the tables (which you need to do in SQL Server too).
No, you don't. You may see less than opitium performance if you don't, but at least the indexes will be use, unlike in Oracle, where apparently they won't.</FONT><FONT size=2>
Right. Do you know how adorable you're being right now ? Please point me in the direction of software that does this.
PostgreSQL w/ pg_autovaccum seems completely maintaince void, save for the occasional need for index recreation in some corner cases. They're working to eliminate that too, as I understand it.</FONT><FONT size=2>So it's more than possible.</FONT>
<FONT size=2>Learn the f'ing database, all the documentation is FREE,
My Free oracle account seems to not be able to access anything.</FONT><FONT size=2>
the database download is FREE,
And is severly limited. It works for development, but that's it. It may not even work for delpoyment testing due to the connection limitations.</FONT><FONT size=2>
ALL STANDARDS? WHAT FUCKING CRACK ARE YOU ON and can I have some? "Program Files" is a silly abomination!
It's also MS' standard so I'll have to kindly suggest that you're the one on crack.</FONT><FONT size=2>
Right, only all of the world's military systems are written in Ada.
Very little military stuff is written in Ada, as it turns out. It never caught on the way the DoD wanted it to for a variety of reasons. When it was first introduced, it frequently didn't perform or didn't run on lots of H/W targets, by the time that was solved, it got displaced by other solutions. That's not to say it isn't used, but it's not even all that common in the US DoD. I know maybe two or three people total who've worked defense their whole lives and know ADA.</FONT><FONT size=2>
A "database" in SQL Server terminology is just a logical grouping of database objects, users, and data files.
It's more than just a logical grouping.</FONT><FONT size=2>
Closest thing Oracle has to this is the "schema" , which is private to a user.
I'm no Oracle expert, but I believe a tablespace is much closer.</FONT><FONT size=2>
It's a different thing that an Oracle database instance, which is the equivalent to creating a new master SQLServer database.
Commonly called a database catalog or cluster.</FONT>
-
Actually, I stand corrected. Oracle has no real equivalent to SQL Server (or PostgreSQL or MySQL) database entities.
-
@LordHunter317 said:
Windows software that can't tolerate spaces in filesnames is in the minority these days.
If you insist.
@LordHunter317 said:
.To me, the fact that so many people have had to write about it tells
me it's very difficult to figure out and use. Oracle is an
extremely complex beast, evidenced by the fact DBAs frequently can't do
development roles, and developers frequently can't do DBA
roles. Which is just silly when you think about it.
It is silly, but it's a cultural thing that occurs across databases,
not just Oracle. Goes the same for DB2, Sybase, or
SQL Server. It's about specializing competence and
interest. It sucks because of the barriers to communication
that are erected between camps. But it's hard to specialize in multiple areas (though some people do it successfully)
@LordHunter317 said:
Save for initial setup and maintaince (which really should be
automatic) all the DBA should ever have to do is change the backup
tapes.
Oh. My. God. Do you have any idea how much work goes into
designing and maintaining a large scale database with hundreds to
thousands TPS and hundreds of gigs to terabytes of data ?
System admins & DBA's need to think about:
I/O Design and Layout - how many disks are needed, what kind of
communications infrastructure (Fibre Channel, SCSI, NAS, etc.) ,
how should the datafiles be spread (RAID 5, 1+0, or extent-based?
Or are you using EMC?), etc
Physical schema design - Should this be a heap or index-organized
table (similar to SQL server's clustered index vs. heap
table)? Should I partition the table? Put it in a
cluster? A hash cluster? What indexes should I
use (b-tree, reverse, function, bitmap, domain specific, full
text)? Should I use materialized views to speed up some
reporting queries? What refresh policy should they have? Do
I need external tables, or just use SQL*Loader for flat file
loads? etc.
Capacity planning - how to build up resources over time, anticipating
breaking points, noting bottlenecks, etc. You can't just
"throw hardware" at a problem without understanding it, for example,
adding CPU's can make a system SLOWER if you're not careful.
Performance tuning & SQL tuning - Should the server be a
shared-threading model or dedicated server model? Should parallel
processing be used for some tables? There's also compensating for
poorly written PL/SQL or SQL code (possible in any language,
really). What kind of locking / isolation mode should be used for
which transactions? Will I need user-level locks at any point?
Backup and recovery design and maintenance -- what's the mean time to
recover for a) component failure, b) media failure, c) backup media
failure, d) catastrophic failure, e) user error, f) block
corruption, etc. How much impact do the hot backups have on
performance & how should they be spread out to
compensate? Develop recovery test scenarios, practise
them, come up with new ways your DB can fail and ensure you're ready
Security integration - Do we use internal roles & users or external
(LDAP)? How do they map? What about data-level
security? Do we use views? fine grained access
control? Do we require certificate-baesd authentication
(x509)? TLS for the database connection? Will I need to set
up synonyms to link schemas? etc
Monitoring and troubleshooting - Are there pending two-phase commit
transactions? Any resources being locked excessively? What
are my hot SQL's, what wait events are causing the most
bottlenecks? Any new patterns in load or data volume that
may impact my capacity or backup & recovery plans?
Patch and feature management -- testing new security patches and
major service packs for weird problems with your application, bringing
new features to developer's attention, etc.
A lot of this is true for Windows and *NIX system administration in
general. You seriously think all of this can be
automated? Some can
be assisted by automotons, but it still needs human judgement.
@LordHunter317 said:
PostgreSQL w/ pg_autovaccum seems completely maintaince void, save for
the occasional need for index recreation in some corner cases.
They're working to eliminate that too, as I understand it.
So it's more than possible.
I'm not sure your point here. Oracle's equivalent locking model
to PostgreSQL (superior, IMHO, because of flashback queries), has never
required vacuuming, the rollback segments are a circle. And it's
gotten easier to design these, with undo tablespaces in 9i, allowing
time-oriented retention policies for older versions.
Could software get more automatic for mundane stuff, or
hard-to-troubleshoot stuff? Absolutely! 10g has a lot of
automatic maintenance stuff for SQL tuning, parameter tuning, and stats
collection. The new web-based OEM has a relatively usable
interface to setup RMAN scheduled backups without resorting to the
command line RMAN.
@LordHunter317 said:
My Free oracle account seems to not be able to access anything.
otn.oracle.com , click documentation or downloads. I have no special privileges.
@LordHunter317 said:
the database download is FREE,
And is severly limited. It works for development, but that's
it. It may not even work for delpoyment testing due to the
connection limitations.
Absolutely NOT. The downloads are for the FULL,
UNRESTRICTED enterprise edition of Oracle's products. You're
expected to purchase a license to deploy it legally. But there is
no technical limitation whatsoever.
@LordHunter317 said:
It's also MS' standard so I'll have to kindly suggest that you're the one on crack..
Fair enough, it's a taste and historical frustration thing, I suppose.
@LordHunter317 said:
Very little military stuff is written in Ada, as it turns out.
No idea, I'll take your word for it.
@LordHunter317 said:
I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).
Fair enough.
-
Lots of fault-tolerant software is written in ADA (ADA was developed for the US military), in particular software for trains. Its also used in missile guidance systems, I have a friend who uses it for this.That doesn't mean it's suitable as a database language, as a language for a database should be forgiving of errors, in my view.In a previous company we paid around $2k for one day of an Oracle consultant's time, to install Oracle on solaris. Now compare this to mySQL, postgres, db2, where an experienced shell user can install it with very little problems. And of course SQL Server could be installed by my gran, and easily configured too. Because it's easy to configure doesn't mean it's not powerful, it's just been well designed and thought about, not slowly added to.The standard bundled tools for it are horrendous, there is very little argument against this statement, as far as I can see. Ditch Java, rewrite them in c++ and you may be getting somewhere. Or maybe my experience with the gui is a complaint about the direness of java as a language for writing GUIs.It doesn't self optimise well, unlike SQL Server, and again returns to the consultant point, a kind of closed circle of 'free masons' who are the only able ones to do this. The database should be the one optimising, its the one that knows about itself better than any dba.Admittedly TSQL is poorer than PL/SQL in terms of power, although this year's Whidbey release and SQL Server 2005 will address this.The minimum specs for a windows install for 9i, iirc was 512mb ram. Compare this to MSDE, mySQL, Postgres. Even SQL Server standard edition. I'd love to see a reasoned argument in favour of Oracle, explaining why so much shit is bundled with it, and why it requires 2gb of space. Surely the obvious answer is, the majority of it is bloatware, used by extreme-case users such as Walmart.Incidently, most of SQL Server is Sybase code (large chunks rewritten for NT), which may account for it being a superior product [:P].In terms of doing the basic task of storing and retrieving data Oracle is slow cludgey bloatware. It may have better features for huge databases such as clusturing (although I've seen this argued in favour of SQL Server, which optimises itself for clustering itself), but the days of enormous (single machine) mainframes are gone, I'd make the broad sweeping statement that the majority of people out there want something that is intuitive and fast to develop with, so they can actually get ROI, and not spend it all on a consultant, installing the damn thing!
-
@smallguy78 said:
Because
it's easy to configure doesn't mean it's not powerful, it's just been
well designed and thought about, not slowly added to.
True. I never would claim SQL Server is a "bad" product, it's a
very good product (and 2005 will be even better). However I
haven't experienced anywhere near the kinds of problems people talk
about with Oracle installations and setups. Oracle has a history
of being annoying to install, particularly on UNIX, but it hasn't had
major problems since at least 2001 with 9i, and arguably 1999 with
8.1.7.
@smallguy78 said:The
standard bundled tools for it are horrendous, there is very little
argument against this statement, as far as I can see. Ditch Java,
rewrite them in c++ and you may be getting somewhere. Or maybe my
experience with the gui is a complaint about the direness of java as a
language for writing GUIs.
Java can be used to write excellent GUI's (look at Eclipse), but Oracle
wrote their toolkit back in 1997 before SWT and Swing and haven't
updated it. So it's rather long in the tooth. The
installer and network manager are really all that's left in Java.
Enterprise Manager is now a web-based application in 10g.
@smallguy78 said:It
doesn't self optimise well, unlike SQL Server, and again returns to the
consultant point, a kind of closed circle of 'free masons' who are the
only able ones to do this. The database should be the one optimising,
its the one that knows about itself better than any dba.
'Free masons' implies that Oracle DBA's are a secret society or
guild. Given how much information is out there, that's a
stretch. It could be that people aren't investing in
learning and training.
But you may say.... SQL server doesn't require training!
B.S. -- it does so, when you have a system of a significant size.
When you're developing on your own, the experience certainly is more
"out of the box". But again, Oracle 10g has come a long way.
@smallguy78 said:The
minimum specs for a windows install for 9i, iirc was 512mb ram. Compare
this to MSDE, mySQL, Postgres. Even SQL Server standard edition. I'd
love to see a reasoned argument in favour of Oracle, explaining why so
much shit is bundled with it, and why it requires 2gb of space. Surely
the obvious answer is, the majority of it is bloatware, used by
extreme-case users such as Walmart.
Are you telling me you develop on machines with 256mb ram?
Oracle can run fine on a machine with 512mb. Even less.
Oracle has a lot of shit bundled with it because it does a
lot. And those "extreme" cases , as you call them, are the
core of Oracle's revenue stream.
@smallguy78 said:Incidently,
most of SQL Server is Sybase code (large chunks rewritten for NT),
which may account for it being a superior product .
Please, do yourself a favour, don't make me puke. Sybase had
benefits over Oracle..... in 1992. Most of SQL server
is re-written from Sybase as of 2000, and nearly a complete rewrite as
of 2005 -- which adopted Oracle's locking model !
@smallguy78 said:In
terms of doing the basic task of storing and retrieving data Oracle is
slow cludgey bloatware. It may have better features for huge databases
such as clusturing (although I've seen this argued in favour of SQL
Server, which optimises itself for clustering itself).
Right. Clickety-click, barba trick, it automagically optimizes itself across a cluster.
Do yourself a favour and learn what clusters are (Pfister's In Search
of Clusters, in particular) to find out how silly your statement
is. SQL Server's clustering works for certain cases
of large-query decision support or highly data-set-specific
queries. That's the problem with 'shared nothing'
approaches (and even still, DB2 would do a better job than SQL Server).
I'm noticing a trend of constant rationalization and deflecting all self-criticism or introspection here.
a) most everyone uses SQL server
b) a few people use mySQL or Postgres (given the windows bias, I doubt people REALLY have used them)
c) no one likes or understands the #1 and #2 databases by marketshare, DB2 or Oracle
d) anything i don't understand is the fault of the product, not my lack of knowledge
e) anything complex is complex because the product sucks, not because
it has a different approach or recognizes inherent complexity
f) if i have to pick up a book, it's too hard
g) dba's have no real jobs , they're like garbagemen -- change the tapes, that's it
h) all other operating systems besides windows suck because i learned
windows first and all that matters is me. ME ME ME ME ME
anyway.
-
<FONT size=1>[QUOTE user="swami"] b) a few people use mySQL or Postgres (given the windows bias, I doubt people REALLY have used them)[/QUOTE]</FONT>
<FONT size=1>I use postgreSQL to run a website. The database behind the website isn't very exciting or big, it just contains all the conetnt, which is maybe 30 pages or so. But I DO use it [:)]</FONT>
<FONT size=1>I recall getting a free Oracle trial version from somewhere at some point. 4 CDs. Too much. Used them to put glasses and cups on as not to stain the table. IMHO a trial version should be small. Quick to install, quick to get rid of if you do not like it.</FONT>
<FONT size=1>Drak</FONT>
-
Just a quick comment. I thought SQL+ was WTF too until I started my new job and was working in Unix through a shell. SQLPlus isn't really a GUI per se, it's for the commandline.
It's actually pretty awesome on Unix because you can use it in scripts instead of cranking up a GUI everytime you want to do a query. We've got lots of canned query scripts that we can use to get info on the current state of our applications.
I didn't get this when I was a Win only dude because the NT shell is WTF and almost worthless.
-
Some plus
CREATE OR REPLACE WITH FORCE makes your views anyway. How many times did you get 100 of errors on sql server just because 1 view was compiled before another
When you rename a view the script is also renamed and not only the view (try that on SQL)Some minors
Users have tables instead of a database has tables
We have a great database on an island. Their interfaces sucks.
I use MS DTS to copy data from one oracle database to another.
No integrated windows logon on *nix
They don't have AUTONUMBER !!. They use stupid sequencers.
-
Huh ever heard of osql ?
-
@Alex Papadimoulis said:
God give it a rest already you are all pathetic!!!!!Why? Because I hate Oracle. I hate how it works. I hate its name. I hate the logo. I hate Larry Ellison. I even hate The Oracle from The Matrix.
Good to get that out of the way. But I figure, with all of the people out there touched by Oracle, there's gotta be a whole lot who hate it as much as I do. Or, a the very least, have an utter discontent for it. So that's what this is all about: sharing your ramblings about the product/company or, if you're brave, sticking up for the absurdity that has become Oracle. If you want to become an official member, simply reply here.
And believe it or not, I actually have some rational reasons to hate Oracle. So, let me start out by sharing just a few of them themIt’s from the world of UNIX and makes sure you know it
UNIX isn’t just another platform, it’s a whole set of cultural values. Although I respect the other side, I just prefer move, copy, and delete instead of mv, cp, and rm. But not Oracle, goodness no; it came from UNIX, and by golly, it’ll act like it. It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.” Its screens don’t look like normal windows. It even refuses to put itself in just as old “Add/Remove Programs” list. And the list goes on. Just to contrast, look at Microsoft’s Office:mac; even the website doesn’t look like Microsoft. Now that’s respect for another culture.Just use the command prompt, sissy
Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt? Because real developers don’t need no stinkin’ tool. Unless you’re a “real” developer, you’re forced to use a third party tool. And just take a quick look at the number one tool. Seriously. Don’t let the “I let my kid design my brand” look fool you, it’s like $1,500 or so. The site doesn’t list prices, so I think we know what that means.I can’t figure the damn thing out
Oracle was kind enough to send a personal edition of their product for me to try out. I installed the whole 2GB bloatware package, guessing on most of the configuration options which provided no defaults. It had a handful of programs it installed, but knowing none actually do anything database-wise, I went directly into the SQL*Plus command prompt. After an hour of figuring out how to connect to myself, I still couldn’t figure out how to get the thing to connect as a SYSADMIN to so I could run some DDL SQL scripts. I don’t think it’s even necessary for me to mention I learned all I need to know about being a DBA (from creating maintenance plans to replication) by just clicking around in Enterprise Manager and reading context-sensitive help.Optimize it yourself, idiot
I’m going to write a whole separate post going into more detail than this. But, it would seem that real developers don’t need no stinkin’ query optimizer guessing which indexes to use where. I can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus because I accidentally had a non-indexed column in the SELECT list, causing a FULL TABLE scan. Apparently, it’s not up to the database to use an index to filter by row, then select columns from the filtered rows.The VARCHAR2 Type
Seriously. Thank goodness they don’t have power to name types outside of their database. I could just picture it, a String6 is just like a String4, but concatenates differently (like the now-obsolete String2 did).The regular “Health Check-Ups” best-practice
I’m going on the word of a few Oracle DBA here, but they claim that it’s a best-practice to have a high faulting consultant (an Oracle Oracle if you will), come in semi-annually and check the health of your database. I’m all about going to the auto mechanic regularly and having the HVAC guy come over once in a while. But that’s because those cars and heaters cannot possibly maintain themselves. Shouldn’t advanced software be able to perform self-maintenance?It’s an insult to Computer Science and the Relational Model
As our favorite Oracle guru puts it, “One of the remarkable extensions of the Oracle database is the ability to reference Oracle objects directly by using pointers as opposed to relational table joins.” I’m sure I’ll write about this more later, but the insults continue with the instance of using row numbers and the abomination of nested tables. Yes, it takes a lot to create something that doesn’t adhere to First Normal Form. No wonder Mr. Burleson needs consultants like himself to come in later and fix the mess he made.
-
$5 says you work for/with, or are related to someone who works for/with Oracle.
-
@swami said:
@LordHunter317 said:
Very little military stuff is written in Ada, as it turns out.
No idea, I'll take your word for it.
@LordHunter317 said:
I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).
Fair enough.If you didn't know, why did you put it forward as an arguement? Makes me wonder how much other stuff you pulled out of your a$$ in trying to make your point...
-
@LordHunter317 said:
@swami said:
It's a standard, even. And most Windows users don't
Please tell
me you're joking. This is a Windows cultural VALUE? Most
Windows people hate this damn thing because the space screws everything
up.
care about the space in the name.You know, GUIs and all that. Kind of a wonderful invention, you know.
Ugh. My first action on getting a new Windows box is to change HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir to someting sensible, like C:\Apps. The stupid hoops you have to do to handle spaced filenames, all those quotes and stuff.
I'm with Oracle on that one.
-
I agree with all your points. However, wait until you have to learn Sybase 12.5 or DB2 8.2, then you will have some real fun. [:P]
-
I hate anything that is non-standard. Oracle follows its own standard to create lockin. Well they know how to make money, but they don't produce good software for the people.
Sequences and Auto-Increment suck.. Never depend on the next value existing. This is just stupid. Just use a unique ID and insert it.
-
@res2 said:
@swami said:
@LordHunter317 said:
Very little military stuff is written in Ada, as it turns out.
No idea, I'll take your word for it.
@LordHunter317 said:
I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).
Fair enough.Honestly, neither of them have a single clue of what they're talking about, so I'm gonna say that while they're both pulling it out of their ass, swami's getting a lot more right.
ADA is still taught to every single programmer in the military, and while it's not used as much as it used to be, there are still a TON of legacy applications in ADA.
As to SQL Server databases, swami was right about that; a Schema is closer. As I understand it, a SQL Server database is a collection of table objects and their related constraints, primary keys, foreign keys, etc. This is the exact same as an Oracle SCHEMA. An Oracle TABLESPACE, OTOH, can be a collection of SCHEMA objects.
If you didn't know, why did you put it forward as an arguement? Makes me wonder how much other stuff you pulled out of your a$$ in trying to make your point...
-
@JThelen said:
@res2 said:
@swami said:
@LordHunter317 said:
Very little military stuff is written in Ada, as it turns out.
No idea, I'll take your word for it.
@LordHunter317 said:
I'm no Oracle expert, but I believe a tablespace is much closer (to a SQL server database).
Fair enough.If you didn't know, why did you put it forward as an arguement? Makes me wonder how much other stuff you pulled out of your a$$ in trying to make your point...
Honestly, neither of them have a single clue of what they're talking about, so I'm gonna say that while they're both pulling it out of their ass, swami's getting a lot more right.
ADA is still taught to every single programmer in the military, and while it's not used as much as it used to be, there are still a TON of legacy applications in ADA.
As to SQL Server databases, swami was right about that; a Schema is closer. As I understand it, a SQL Server database is a collection of table objects and their related constraints, primary keys, foreign keys, etc. This is the exact same as an Oracle SCHEMA. An Oracle TABLESPACE, OTOH, can be a collection of SCHEMA objects.
That's a first. WTF post generation ate my prior post. It should have looked more like this.
-
@tberthel said:
I hate anything that is non-standard.
Oracle follows its own standard to create lockin. Well they know
how to make money, but they don't produce good software for the
people.Sequences and Auto-Increment suck.. Never depend on the next value existing. This is just stupid. Just use a unique ID and insert it.
I have absolutely no clue as to what you're talking about. There are a few things in Oracle that are not to exact SQL standard, but those are additional constructs and you can do anything without them that you could do with them, but using them makes life a little easier. MINUS and CONNECT BY PRIOR come to mind here.
As to Sequences and Auto-Increment being horrible, I don't get your arguement there AT ALL. If I have a value, and I increment it by 1, or 10, or 100, or any other value I decided on, why would the nextval not be there? Is there some limit in the numbering system that I'm unaware of? I'm reasonably certain that my math teachers in middle school were quite clear that numbers are infinite. Also, I have no fucking clue what a unique ID has to do with this. That has to get generated somewhere, right? Why would the same rules that apply to a number generated by the database not apply to this random Unique ID of yours?
-
@Cyresse said:
$5 says you work for/with, or are related to someone who works for/with Oracle.
So are you saying that because he uses and is comfortable using Oracle
products his points are invalid? If so, that's a real nice way to
restrict anything remotely factual from finding its way into this
discussion.
-
@JThelen said:
@Cyresse said:
$5 says you work for/with, or are related to someone who works for/with Oracle.
So are you saying that because he uses and is comfortable using Oracle products his points are invalid? If so, that's a real nice way to restrict anything remotely factual from finding its way into this discussion.I was commenting more on the obvious emotional tone of the post being indicative of someone who supports Oracle for personal reasons. I highly enjoy reading the accounts of people who know Oracle and can comment thoroughly on it's weaknesses and strengthes.
An unsubstantiated opinion that "we are all pathetic" is not something I would consider factual, remotely or otherwise, so I can rest easy, assured that my questioning of an emotional response in support of Oracle has not quashed any form of expression.
-
Funny, many of your arguments against Oracle are actually plain wrong... but
since is the "I hate Oracle" thread, I'll not try to correct you, but
add my own "things I don't like in Oracle" list...
since '' = NULL, rpad('', 5) = '' and length('') = NULL
Even after years of PL/SQL programming, this still catches me
from time to time. The length() thingy is especially prone to infinite
loops:while length(myString)>0 loop doSomeThingWithTheFirstCharacter(substr(myString,1,1)); myString := substr(myString, 2); -- remove first character end loop;
Looks innocent, but never finishes.
accessing Oracle from anything but JDBC
the "Oracle Client" installation is probably larger than a fully functional Linux distro including PostgreSQL
having the boolean datatype in PL/SQL, but not in database tables
so it's 'Y' and 'N' in a char(1) or '0' and '1' in number(1)... there are many possible replacements, choose one
Oracle installer not working properly
More than once I experienced an crash when trying to install an Oracle
product on Windows. No workaround. On Linux, there are funny effects
with the Java-based installer... like not working on the local X
server, only from a remote X server or VNC.
Oracle de-installation not working properly
If you think installation sucks, try to get rid of it. Hint for Windows users: DELTREE and REGEDIT are the way to go.
Anything but the database
Compared to their other tools, like OAS (Oracle Application Server), the Oracle Database is a minor anoyance.
-
Oracle Ranting, Part 2
Cost-based query optimizer
in most cases, it works reasonably well, maybe even a bit faster than
the rule-based optimizer; but if it fails (chooses the wrong access
strategy) it goes horribly wrong. Full-table scans on several large
tables etc.
SQLC preprocessor not working identical on all plattforms
In 8i, the sqlc preprocessor would accept certain constructs on Linux but not on Windows.
BTW, the first lines of my SQL*C programs look like this:
#ifndef STUPID_PROC
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <ctype.h> #include <malloc.h> #else extern double rint(double); extern void *calloc(int, int); extern void *stderr; #endif </malloc.h></ctype.h></stdlib.h></math.h></stdio.h>because SQL*C does not accept all standard include files from Linux. Of
course, it has to be called with the define=STUPID_PROC option.
installation
Can't repeat that often enough.
example DBMS paramsIn older versions up to 8i, you had to set
some performance-relevant parameters in the init.ora file. The sample
came with 3 different sets of parameters: SMALL, MEDIUM and LARGE
(corresponding to the ammount of RAM oracle would occupy). But even in
the LARGE configuration, Oracle would only use 12MB for block buffers,
so if you had a decent ;-) server with 128MB RAM, Oracle would not make
much use of it, thus being incredibly slow. Even on our development DB
server, which is not exactly powerfull but has to host 10 or so
instances of Oracle, I had to set higher values than the proposed LARGE
configuration.
syntax of the INSERT statementWell, this actually applies
to all SQL databases, not just Oracle... but since they already
introduced so many proprietary SQL extensions, they could have cared
for that one too:INSERT INTO mytable (c1, c2, c3, ..., c57) VALUES (v1, v2, v3, ..., v57)
What'swrong with it? Try to match the entries in the column list with the
entries in the value list. Nearly impossible for tables with many
columns. I would gladly welcome a DBMS which introduces a new
(UPDATE-like) syntax:INSERT INTO mytable SET c1=v1, c2=v2, c3=v3, ..., c57=v57
If you know such a DBMS, please tell me.
-
... after reading through all the posts I'm really curious about the
qualification of some "experts" here who are in desperate need of
"getting a clue" (or at least read that frikkin' manual and Tom Kytes
site)
Yes, Oracle has its irks and flows.
No, there is no database product on this planet that is error free.
Yes, SQL-Server may have it's advantages - I quit after 6.5 puked on
3000 (!) records inserted via ODBC (that's quality for you folks).
No, Oracle EE is not designed to run on your pocket pc, use Oracle Light for whoever's sake.
Yes, postgres is a nice database system, but is lacking in some areas (such as writing SP-Code directly in triggers)
No, Sybase does not possess any significant market share any more, and
T-SQL is an abomination compared to PL/SQL. Same goes for VB/VBScript.
Yes, nobody likes Larry Ellison (except Oracle Share Holders), but the
same goes for William Gates III. and tons of other Forbes 1000 Company
Owners, CEOs or Leading Managers.
No, Oracle is not nailed to one flavor of Linux, it can be installed on
several different distributions starting with RedHat and friends
(CentOS, Xeos, probably White Box), SuSE (now Novell), even the
"professional" version, and even works on systems powered
with gentoo (which is not for the faint of heart). Hell, there's even
an installation guide for FreeBSD.
Yes, it runs on the Redmond OS (which, by the way, is a weak excuse for an operating system, but that's another story)
No, neither sqlserver nor any other commercial come close to oracle's
clustering capabilities beeing summarized in the acronym RAC. Most
people don't need it, but you'll get it for free in the 10g SE (!)
anyway.
But since this is Oracle Hate Club, yes, there are some things, where I have my problem areas with the Big O.
30 Character Limit
Don't know who invented this, and it's fine on table/column names. But
constraints would be a lot more easier to implement if you weren't
forced to cut their names because of this "invention" (for which I
don't see any valid technical reason, especially in the 21st century)
Everything's a hog
It may be just me, but Oracle's products can be described
with a lot of attributes, but "lean and mean" is none of them (even
when it comes to Oracle Light). It's like Oracle assumes that all the
DB developers out there are kids in a candy store with only one thought
in their frikkin' mind: Get it all. No, Mr. Ellison, I don't work
with "advanced queues" and gazillion other features of this otherwise
remarkable product. Would it be possible, to spend less denn 1.4 GB for
a base installation (without a running instance) albeit we're in the
400GB harddrive for the desktop aera?
Sequences are nice - but so are id columns
Why write a trigger (even through a script) for such tasks? Why not
have the best of both worlds, such as in postgres? Can't be that hard,
right?
UPPER CASE is not a life style
Yes, you can use mixed case for better readability with "", but
wouldn't it be nice, if the system would just remember those things
without the help of the developer? I for one, do prefer mixed case,
especially in reading.
that's all folks (for now)
l.
-
... forgot at least on important thing after reading another Oracle WTF.
Empty Strings ('') = NULL
I can't count the number of occassions where this "special feature" in
Oracle caused me and others to figure out a workaround. Thanks Larry ...
l.
-
@ammoQ said:
syntax of the INSERT statementWell, this actually applies
to all SQL databases, not just Oracle... but since they already
introduced so many proprietary SQL extensions, they could have cared
for that one too:INSERT INTO mytable (c1, c2, c3, ..., c57) VALUES (v1, v2, v3, ..., v57)
What'swrong with it? Try to match the entries in the column list with the
entries in the value list. Nearly impossible for tables with many
columns. I would gladly welcome a DBMS which introduces a new
(UPDATE-like) syntax:INSERT INTO mytable SET c1=v1, c2=v2, c3=v3, ..., c57=v57
If you know such a DBMS, please tell me.
MySQL handles that just fine
-
You think just the database is bad? Try Oracle Forms.
OMG that product sucked so bad. When I got consulting gigs to
replace Oracle Forms apps I wrote plenty of scripts to convert that
s*** into Delphi forms, then go back and do the arduous task of
refactoring the database/class structure, etc.
I don't even want to go into Oracle CRM or their ERP "solution." No wonder they are on a company buying spree.
-
Because I have to use MS SQL Server every day, and I hate that. When I have to use Oracle every second day, I get a pleasant reminder that MS SQL Server isn't that bad after all.
-
My membership
Why I hate Oracle:
- DUAL. Who the fuck came up with the idea of a table called DUAL that contains ONE record. Why not call it SINGLE? Or why not support the fact that WHERE clauses might be <i>optional</i>?
- One engine = one database. On many other databases (Informix and PostgreSQL, to name a few), you can run many independent databases on a single engine. This means you can, for instance, easily clone a database for testing purposes. But we use Oracle. This means that we have to ask the sysadmins to create a new engine every time we need a new database. Even if we intend to almost never use it. And they often refuse, as every engine takes up too much server memory already.
- The DATE type. Why call a type DATE and include a time? All sensible databases have separate types, like DATE, TIMESTAMP, TIME. Types that do what they say.
- You cannot declare a parameter or a variable at the beginning of a stored procedure (before the BEGIN part) that has the word "end" in it. At least, not through ODBC -- the driver parses just enough to barf on that.
-
I've been oracle-free for two years now, so I've forgotten 95% of the headaches. The best ones I can remember:
The Java installer. It sucked really bad. First
off it wouldnt run at all with the standard version 2.37 of Java, you
had to download an install a 11MB patch to Java first. Then it
would run, but all I remember is it asking a lot of unanswerable
questions, informing me my disk with 23Gb free didnt have enough space,
as some integer overflowed and it thought I had -1433GB free.
---
After finally getting it installed, it was time to make a test
database. You'd think by now you could type "dbnew foo
/tables=... /fields=....". Nope.
There's a horribly convoluted 57 pages in the manual as to how to
get a db started, and a lot of handwaving. Crazy.
Particularly annoying was having to generate all kinds of
tables for Oracle's internal use. When you go
to buy a jar of Heinz ketchup, do they require you
to fill out a purchase order for their tomato squisher?
When you buy a car, do you have to go order them some iron ore?
I kept looking and looking, assuming I was mssing the little blue button labeled "make me a database in 2 seconds". Just couldnt seem to find it.
Finally I sat down and wrote some code to do all the necessary
things in one fell swoop. Why wasnt this done on day
one of version 1.0? Yes, I know, there are some
tools that allegedly do this, but they looked far to horrible to ever
use.
That was just the tippy-tip-top of the iceberg. All else has faded from memory. Whew.
if we were still in a cold war with the russkies, we should have dropped Oracle on them.
Free CD's. Please use.
-
I love Oracle - most people have no idea whatsoever about it, it keeps me in work. Luverly!
As they say - If it was easy they'd all do it - no money in that!