tag:blogger.com,1999:blog-129508202024-03-23T12:21:04.892-06:00OracleBlogHelpful ideas and solutions for the Oracle application enthusiast. Check out the <a href="http://thinkoracle.blogspot.com/2006/03/bookmark-this-page.html">archives</a>Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.comBlogger131125tag:blogger.com,1999:blog-12950820.post-26687543165023683912012-08-11T19:19:00.002-06:002012-08-11T19:19:55.555-06:00The Two Ways of Doing a JobWhether 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 Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com20tag:blogger.com,1999:blog-12950820.post-26496385177318353782012-03-15T13:03:00.002-06:002012-03-15T13:05:16.375-06:00Book Giveaway UpdateThere 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.com7tag:blogger.com,1999:blog-12950820.post-73778812875807167712012-03-03T16:33:00.002-07:002012-03-03T16:58:03.233-07:00Oracle Book GiveawayI'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.com5tag:blogger.com,1999:blog-12950820.post-27813460580632592162010-09-07T10:17:00.003-06:002010-09-07T10:22:45.105-06:00Using Oracle SQL Developer with MS SQLHaving 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.com137tag:blogger.com,1999:blog-12950820.post-85719662454858791442010-08-11T13:35:00.002-06:002010-08-11T13:43:27.479-06:00FIRST_ROWS vs ALL_ROWSA 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.com139tag:blogger.com,1999:blog-12950820.post-32452860442745104532010-08-04T15:51:00.000-06:002010-08-04T15:52:29.547-06:00One MillionToday, 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.com4tag:blogger.com,1999:blog-12950820.post-79683810744844016522010-08-02T19:30:00.002-06:002010-08-02T19:38:55.828-06:00Changing User's Default SchemaLast 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.com2tag:blogger.com,1999:blog-12950820.post-35405264156711930082010-03-25T10:00:00.002-06:002010-03-25T10:03:59.215-06:00DECODE/CASE vs. Mapping TablesI 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.com10tag:blogger.com,1999:blog-12950820.post-76550925107182964782010-02-23T14:27:00.002-07:002010-02-23T14:32:51.867-07:00Improving your SQL QueriesGreetings! 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.com2tag:blogger.com,1999:blog-12950820.post-64429786362609624112009-02-24T09:17:00.002-07:002009-02-24T09:21:57.846-07:00Get 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.com7tag:blogger.com,1999:blog-12950820.post-3888491555535464422009-02-20T09:54:00.004-07:002009-02-20T09:57:38.970-07:00OVERLAPS"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.com4tag:blogger.com,1999:blog-12950820.post-76105311232492385042009-01-22T11:38:00.003-07:002009-01-22T11:43:30.605-07:00Cleaning up with ALL_TAB_COLSThe 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.com9tag:blogger.com,1999:blog-12950820.post-16451379168791864792008-04-23T16:39:00.001-06:002008-04-24T07:51:51.285-06:00Bashing RDBMSPlease 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.com7tag:blogger.com,1999:blog-12950820.post-34944450064332125882008-04-18T10:01:00.003-06:002008-04-18T15:31:00.038-06:00Avoid DepraymentsThere 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.com3tag:blogger.com,1999:blog-12950820.post-50369749895292651622007-10-21T11:56:00.000-06:002007-10-21T11:59:30.029-06:00Global Temporary TablesI 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.com15tag:blogger.com,1999:blog-12950820.post-80618084569193025972007-06-03T10:59:00.000-06:002007-06-06T11:09:59.684-06:00SQL Interview QuestionsYou 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.com28tag:blogger.com,1999:blog-12950820.post-16735310370799344272007-05-28T11:36:00.000-06:002007-05-28T14:13:18.907-06:00Multirow InsertsWhile 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.com7tag:blogger.com,1999:blog-12950820.post-62066406386854809302007-05-25T12:27:00.000-06:002007-05-26T09:32:51.117-06:00What 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.com17tag:blogger.com,1999:blog-12950820.post-773628160297306672007-05-04T11:29:00.000-06:002007-05-04T13:07:34.590-06:00ANSI JoinsLike 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.com7tag:blogger.com,1999:blog-12950820.post-44216616343771342202007-04-05T14:20:00.000-06:002007-04-05T14:24:13.117-06:00Oracle BeefsI'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.com5tag:blogger.com,1999:blog-12950820.post-74122555648270067552007-03-09T16:09:00.000-07:002007-03-13T19:13:24.426-06:0040 Tips From TomEverybody learns their lessons, and so will you. The only variable is how expensive the lesson is. While there is no substitute for direct, first-hand experience, the cheapest way to learn a lesson is to benefit from the experience of others.My favourite source of cheap lessons is Ask Tom. I've compiled a sample collection of Tom's Wisdom from just the articles updated in the past week. Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com1tag:blogger.com,1999:blog-12950820.post-77356204390072904862007-02-26T12:54:00.000-07:002007-02-26T12:59:31.685-07:00Fun With Tom KyteAs devoted readers may have noticed, my new job doesn't involve nearly as much work with Oracle. I stay sharp by reading Ask Tom, the very site that has provided me with 90% of the answers that I can't find in Oracle documentation or figure out on my own.Those of you who may find it nerdly to spend lunch hours reading Oracle Q&A are actually really missing out. It's far more entertaining than Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com7tag:blogger.com,1999:blog-12950820.post-1169759019374316782007-01-25T14:00:00.000-07:002007-01-25T14:05:30.686-07:00REPOST: Pivot and Crosstab QueriesHere is another advanced concept that will come in useful when solving Oracle problems. Imagine you're trying to create a result set where the rows need to be columns, or vice versa. In essence, you need to "pivot" rows into columns, or vice versa. That is a very common requirement, and this is where you need to look at a pivot (or crosstab) query to get the job done.As always, when you want Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com3tag:blogger.com,1999:blog-12950820.post-1165262419503128922006-12-04T12:57:00.000-07:002006-12-04T13:04:56.113-07:00REGEXP_LIKERecently I invited anyone who has been considering joining the Oracle blogging community to jump right in. Please, help me encourage John H:Robert,Way cool blog. I really need to create one too. I like to adhere to best practices and love to read stuff from Tom K. and Steven F.!I have a question on regular expression check constraints and was wondering if you can help:alter table Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com1tag:blogger.com,1999:blog-12950820.post-1163522940456166012006-11-14T09:48:00.000-07:002006-11-14T09:49:00.460-07:00100,000 more?18 months.107 posts.110,000 reads.Not too long ago I reacted with humble incredulity that 10,000 people had read what I had to say about Oracle.Here I am, exactly one year later, and there have been 100,000 more visits. I'm almost afraid to continue, will I be talking about 1,000,000 in November 2007?I wonder why people are reading my blog because, despite how numerous we are, it seems like Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com2