How do you feel about the place you're in, the places you've been, and the places you hope to go? As I was reading "Oh, the Places You'll Go" by Dr. Seuss to my daughter this evening, I was struck by how much wisdom was held in that simple children's story. So, I did a quick search and found the words of the story for you.
For those sports buffs out there, check out this cool video using this story that aired as an opener for the 2006 SuperBowl.
At Hotsos Symposium Training Day I used rlwrap with sqlplus – which gives nice command line editing and history capabilities for tools like sqlplus. Additionally I pre-generated commonly used Oracle keywords, data dictionary view and package names into rlwrap wordfile, so I got nice tab-completion too. Sqlplus sucks much less with rlwrap ;-)
It’s relatively easy to install rlwrap on Unix (there are rlwrap RPMs out there, Solaris freeware packages and I installed it on Mac via macports.org). Just google around…
You can have rlwrap on Windows too – As rlwrap has been coded for Unix flavors, then on Windows you need to run it on a Unix library environment emulator – like Cygwin.
Dave Herring and Michael Paddock have both written an article about how to get rlwrap & sqlplus running on Windows, check out the articles here. It’s worth reading both as they have different additions…
So, if you want command line history, search and tab completion for sqlplus on Unix flavors or Windows, check these articles out!
Here’s a little demonstration I’ve been meaning to write about for the last few years – it’s very simple: create a table, then query it a few times. execute dbms_random.seed(0) create table t1 as with generator as ( select --+ materialize rownum id from all_objects where rownum <= 3000 ) select lpad(dbms_random.string('U',2),40,'X') v1 from generator [...]
I’ve just added a link to Graham Wood’s presentation about ASH (v$active_session_history) to my catalogue of Statspack Examples. I’ve also added a link to the “Partition Stats” catalogue pointing to Doug Burn’s latest blog; I’ve also added a permanent entry for partitions to the “Special Links” menu on the right. This note will be deleted [...]
I'm pretty self-concious of the amount of waffle that surrounds any technical content here, so let's get the technical bit out of the way first, then the waffling can come later ...
I finally tracked down the mistake I didn't make in part 6a, but thought I'd identified and fixed in part 6b! Here are the two sets of subpartitions for the P_20100209 partition that's the source of the statistics and for the new P_20100210 partition that the stats were copied to. This is how part 6a originally looked
TEST_TAB1 P_20100209_GROT NO 22-APR-2010 11:24:12 3 TEST_TAB1 P_20100209_HALO NO 22-APR-2010 11:24:13 3 TEST_TAB1 P_20100209_JUNE NO 22-APR-2010 11:24:13 3 TEST_TAB1 P_20100209_OTHERS NO 22-APR-2010 11:24:13 3 TEST_TAB1 P_20100210_GROT NO TEST_TAB1 P_20100210_HALO NO TEST_TAB1 P_20100210_JUNE NO TEST_TAB1 P_20100210_OTHERS NO
and here it is after I'd fixed it.
Although Bitmap Indexes are commonly created on one column, you can create multi-column, concatenated Bitmap indexes as well. Many of the same issues and factors in deciding to create a single, multi-column index vs. several, single column indexes apply to Bitmap indexes as they do with B-Tree indexes, although there are a number of [...]
But something I see people learning over and over and over again.
I was reminded of a recently asked asktom question - regarding an "intermittent" 'Oracle' bug in a java application ('Oracle' used for sarcasm on my part).
I was reading the current Steven Feuerstein's Blog entry (read that link before going on). It was exactly the same problem found by the java developers on asktom - which they were certain would be an 'Oracle bug' (hint: it wasn't, it was clearly and demonstrably in their code).
Funny, I see the pattern so often that I saw the bug in both bits of code almost immediately. It jumped out and hit my in the face.
SPOILER ALERT: don't read past here if you want to test your ability to find the bug, read Steven's article first.
Maybe I'll put in a request for the to_date function to be overloaded to accept a date as input and just return that date as output.
edit: added after *thinking* about what I just said...
That of course would never work. People are expecting the date format to be applied to the string, so just returning the date could of course NOT be the right thing to do. I guess the overload would have to turn:
to_date( DATE, 'fmt' )
to_date( to_char(date,'fmt'), 'fmt' )
to_date( to_char(date, IMPLICIT_FORMAT ), 'fmt' )
as it does now, but it would be a HUGE change to existing code that 'relies' the way it currently works...
The to_date function takes a string as input and since the date can be converted to a string - it is. I've seen MANY people use:
to_date( date )
to "truncate" a date (horrible idea - not only slow, but RISKY) - it would break their code (not that it isn't already broken) so it would probably be questionable...
Important enough to point out to a wide audience though - beware implicit conversions and watch out for to_date( of a date )!
Following my notes about counting rows in blocks, someone emailed me to ask how the query I’d published would deal with migrated rows. Remember, a migrated row is one that has been moved in its entirety to a different block because an update to the row resulted in the row needing more space than was [...]
As you may already know, the terminal 10gR2 patch set (10.2.0.5) has been released recently on the Linux x86 & x86-64. Today I’ve installed 32-bit version on a test machine and was going to have a look on the Doc ID 1088172.1 for list of bugs fixed in this patch set, but there were almost [...]