Thursday, October 15, 2009
Windows 7 Community Launch Party
Tuesday, May 12, 2009
Oracle SQL: ROWID Pseudocolumn
ROWID
pseudocolumn returns the physical address of the row. Oracle Database rowid values contain information necessary to locate a row:- The data object number of the object
- The data block in the datafile in which the row resides
- The position of the row in the data block (first row is 0)
- The datafile in which the row resides (first file is 1). The file number is relative to the tablespace.
Usually, a rowid value uniquely identifies a row in the database. However, rows in different tables that are stored together in the same cluster can have the same rowid. Values of the ROWID
pseudocolumn have the datatype ROWID
or UROWID
.
Rowid values have several important uses:
- They are the fastest way to access a single row.
- They can show you how the rows in a table are stored.
- They are unique identifiers for rows in a table.
You should not use ROWID
as the primary key of a table. If you delete and reinsert a row with the Import and Export utilities, for example, then its rowid may change. If you delete a row, then Oracle may reassign its rowid to a new row inserted later.
Although you can use the ROWID
pseudocolumn in the SELECT
and WHERE
clause of a query, these pseudocolumn values are not actually stored in the database. You cannot insert, update, or delete a value of the ROWID
pseudocolumn.
To simulate the scenario, I created a sample table named Test:
SQL> CREATE TABLE Test
(test varchar2(10));
Then, I inserted two identical records with no primary keySQL> INSERT INTO Test
VALUES ('Test1');
SQL> INSERT INTO Test
VALUES ('Test1');
Then, selected the rowid of two identical recordsSQL> SELECT rowid, test
FROM Test;
Then, the query returned
ROWID TEST
-------------------- ---------------
AAASDcAAEEAADOMAAA Test1
AAASDcAAEEAADOMAAB Test1
Then, I tried to delete one of the two identical recordsSQL> DELETE FROM Test
WHERE rowid = 'AAASDcAAEEAADOMAAA';
Then, the result says 1 row deletedYey, we've successfully deleted one of the two identical records. ^_~
Tuesday, May 5, 2009
Oracle SQL: Traditional Outer Join Syntax
"What's the difference of using the JOIN keyword and using the (+) for joining of tables?"
Then, he showed me a SQL script using the (+) syntax and explained to me that his mentor taught him to use this syntax and that they are also using this SQL syntax in all their systems and applications.
For a while, I wondered... because I've never encountered this (+) syntax with Oracle 9i, 10g and 11g books and course materials. I told him, maybe it was the old JOIN syntax being used by earlier versions of Oracle.
To support my wild guess... that it is really an old JOIN syntax still supported by Oracle, I started to google about it and I landed on Oreilly's Oracle SQL*Plus Pocket Reference, 2nd Edition, by Jonathan Gennick, sample chapter excerpt: http://oreilly.com/catalog/orsqlpluspr2/chapter/ch01.html
According to the book, the (+) syntax for joining tables is an old syntax for outer joins until Oracle 8i. An outer join returns rows for one table, even when there are no matching rows in the other. You specify an outer join in Oracle by placing a plus sign (
+
) in parentheses following the column names from the optional table in your WHERE clause. For example: SELECT ut.table_name, uc.constraint_name
FROM user_tables ut, user_constraints uc
WHERE ut.table_name = uc.table_name(+)
The (+
) after uc.table_name makes the user_constraint table optional. The query returns all tables, and where there are no corresponding constraint records, Oracle supplies a null in the constraint name column. Full outer join is not supported using the (+) syntax.
Wednesday, February 4, 2009
CamStudio - Open Source
Cool, right? ^_^
So, when can you use this FREE software?
- You can use it to create demonstration videos for any software program
- You can create video tutorials for school or college class
- You can use it to record a recurring problem with your computer so you can show technical support people
- You can use it to create video-based information products you can sell
- You can even use it to record new tricks and techniques you discover on your favourite software program, before you forget them
CamStudio can also add high-quality, anti-aliased (no jagged edges) screen captions to your recordings in seconds and with the unique Video Annotation feature you can even personalise your videos by including a webcam movie of yourself "picture-in-picture" over your desktop.
And if all that wasn't enough, CamStudio also comes with its own Lossless Codec that produces crystal clear results with a much smaller filesize compared with other more popular codecs, like Microsoft Video 1.
You have total control over the output of your video: you can choose to use custom cursors, to record the whole screen or just a section of it and can reduce or increase the quality of the recording depending on if you want smaller videos (for emailing to people, for instance) or you can have "best quality" ones for burning onto CD/DVD.