Robert Vollman
Helpful ideas and solutions for the Oracle application enthusiast. Check out the archivesRobert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.comBlogger131125
Updated: 2 hours 1 min ago
The Two Ways of Doing a Job
Whether it's deployment, development, performance tuning, troubleshooting or something else, there are two fundamentally different ways of doing your job: doing it fast and doing it completely.
Doing it Fast
Sometimes you can make a case for doing something fast. If you're dealing with something you're only going to do once, in a problem space you're either already deeply familiar with or Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com24
Book Giveaway Update
There are still a few books available - anything unclaimed by the end of next week will be recycled. Pay only for shipping (and optional tip).Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com8
Oracle Book Giveaway
I've got seven Oracle books available for giveaway. Any unclaimed books will get recycled (assuming the library doesn't want them).If you'd like one or more, just send an email to my gmail account (my account id is just my last name, Vollman). Since I don't want to be out of pocket, I'll ask that you arrange to pay for the shipping, please.In the unlikely event that there is high demand for oneRobert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com9
Using Oracle SQL Developer with MS SQL
Having chosen Oracle SQL Developer as your preferred Oracle database tool, do you have to install and learn a new technology for supporting your MS SQL databases? Nope! It's easy to connect SQL Developer to MS SQL databases, and I'll show you how.BackgroundFor years I worked in technical support for software vendors, and I never knew what client tool would be available when I accessed a Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com209
FIRST_ROWS vs ALL_ROWS
A colleague asked me some questions about FIRST_ROWS and ALL_ROWS, but I'm hesitant to blog about it because it's already been done so well by others -- the best example would probably be Sachin Arora.Nevertheless, it never hurts to lend another voice to the Oracle choir, so here's everything I know on the topic.FIRST_ROWS and ALL_ROWS are values for the optimizer setting OPTIMIZER_MODE. You canRobert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com197
One Million
Today, August 4th, shortly after lunch, ThinkOracle had it's one millionth visitor. Care for a stroll down memory lane?I started this site May 16, 2005, shortly after starting a new position with a company that made financial software. The idea was to make my own contribution to the growing Oracle community, expand my knowledge, improve my technical writing, and it never hurts to establish a Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com4
Changing User's Default Schema
Last week I got a question about changing a user's default schema.My colleague is supporting a typical database application which is configured to use the user/schema that was created for its database. Many queries were written for this application that use that schema owner, but my colleague would like to run those queries with his own account instead - either because he doesn't want to log in Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com2
DECODE/CASE vs. Mapping Tables
I was helping a colleague recently with some SQL. He had about a dozen SQL queries that all looked something like this:SELECT (some stuff),DECODE (status, 'A', 1, 'I', 0),(more stuff)FROM(wherever)I made a few observations about his DECODE statement:1. Sometimes he used DECODE and sometimes he used CASE2. Sometimes he would map ' ' to 0, and sometimes it would go to the default value of NULL, Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com11
Improving your SQL Queries
Greetings! You probably found this page either through a Search Engine, an aggregator that doesn't delete blogs for inactivity, or possibly from a site with a very long blogroll, so let me introduce myself to you.My name is Robert Vollman. Those who were active in the on-line Oracle community from mid-2005 until mid-2007 may remember me either from this site or sites like it, from the Oracle Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com2
Get Rid of NULL
"My query isn't returning the right rows" is a problem we all hear often. Upon investigation, I find that the most common cause of a miswritten query is a misunderstanding and/or mishandling of NULLs.Well, you know what? I've had it. Let's get rid of NULL. There, I said it.I've written articles explaining NULL before, a couple of times in fact*. So have plenty of other Oracle specialists, inRobert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com8
OVERLAPS
"What's wrong?" the guru asked as he sat down next to the company's newest database analyst. "I heard you were having some trouble with the room booking application.""Yep," said Chad. "I just can't seem to get it right.""Don't put it all on yourself," said the guru. "What can I do to help?""Well, I've got it narrowed down to this one procedure, which is responsible for checking if the room is Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com4
Cleaning up with ALL_TAB_COLS
The way he barely lifted his feet off the ground when he walked, I could hear him approaching from the other end of the hall. I knew he was coming, and I dreaded it. I had just gotten off the phone with a former teammate who was moved to another department. They had a new database analyst who was struggling with his new "database independent" application, and he was sent my way. It was just Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com9
Bashing RDBMS
Please review the following interesting article by Jonathan Holland.Why Relational Databases end up being the bottleneckFor the appropriate context of this debate, you can review this forum discussion on Joel's web site as just one example.Stored Proc to avoid frequent buildsAs is evident from the title and content of my blog, I'm a database professional. Nevertheless, I try to stay as objectiveRobert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com8
Avoid Deprayments
There are deployments and there are deprayments. What's the difference?A deployment is when you deploy a change and verify that it was successfully deployed and functioning properly.A deprayment is when you "deploy and pray." It's kind of like Dr. Evil in the Austin Powers movie: you don't actually witness that the deployment succeeded, you just walk away and assume everything went according toRobert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com3
Global Temporary Tables
I listened intently to the new Oracle programmer as he described all the struggles he's been having on his first big project. As I've done many times already in his short career, I interrupt with some words of wisdom."It's time to add Global Temporary Tables to your toolbelt.""What are those?" he asks, as he opens the directory with the Oracle documentation. I smile. He has already learned Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com15
SQL Interview Questions
You pick up the candidate's resume and it proudly proclaims "SQL Expert: 10 Years." Your boss trusts you, as the technical expert on the team, to participate briefly in the interview to gauge this individual's knowledge of SQL. Where to begin?I have asked literally hundreds of different questions during interviews over the past decade. Some were simple questions that were nevertheless Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com30
Multirow Inserts
While attempting to insert several rows into a table in our Oracle database, a colleague dutifully copied the exact ANSI/ISO SQL standard syntax for his purposes. Guess what happened?INSERT INTO table (column1, column2)VALUES (value1, value2), (value1, value2);ERROR at line 1:ORA-00933: SQL command not properly endedUnlike some other databases (DB2, PostgreSQL, MySQL), Oracle doesn't support Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com7
What Makes a Great Oracle Blog?
Along the side of my page, you'll see my favourite Oracle blogs listed. I carefully maintain this list of fellow enthusiasts whose opinions and insights I most especially want to follow among the seemingly hundreds of Oracle blogs that are out there. Studying them, I think you'll find that each of them share the same core qualities listed below.1. AccuracyAccuracy is an absolute must. Just Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com18
ANSI Joins
Like most of us, I still join tables in my SQL queries the old-school way. Simply put:SELECT whateverFROM table1 t1, table2 t2WHERE t1.id = t2.idAND t1.value > 10;But increasingly often I run into people who use ANSI joins instead. They were either introduced to SQL with Oracle 9 (or Sybase 12, etc), and were taught to use the SQL standard way, or else they made the conversion at some point in Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com7
Oracle Beefs
I've got very few beefs with Oracle. It is extremely complicated and tough to learn compared to other relational databases, but that's partially offset by the tremendous documentation, and the huge Oracle community.Don't get me wrong, I love Oracle. I'm regularly impressed by the sophisticated and often clever ways it handles the requirements of an RDBMS, and quick to recommend its use. But Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com5