KScope12 Day 1


First day was unintentionally APEX heavy for me. Not that that’s a bad thing, just sort of surprising to me in hindsight. Saw some really neat apps and ideas with HTML5 and dynamic actions. Also saw some new tools I’ll be checking out to make my own development more productive like aptana studio and apexlib.

Also went to the always great Steven Feuerstein and Tom Kyte sessions. Steven’s presentation “Cleaning up your APEX PL/SQL code” was pretty much what you’d expect. Lots of good pl/sql advice but with an eye toward apex. I’m not trying to trivialize it, but rather reiterate the theme: follow good encapsulation and de-duplication practices. Those practices apply when using apex or not, but given the structure of some of the APEX declarative framework it’s easy to implement functionality in such a way as to hamper maintainability.

Tom’s presentation “Five Things You Probably Didn’t Know About SQL” was very entertaining. Taking “select * from t” and tuning it. Looking at the impact of sqlnet compression and array fetching as well as filter impacts of 11g sql monitoring and histograms. In many ways it was mostly stuff I already knew but put together with excellent examples to help it sink in better. I definitely want to bring these lessons back to the office to help the developers there.

After dinner went to Cary Millsap’s keynote address on life, learning and happiness. Very good and while I always recommend his book for technical content, this non-technical presentation was a must see.

Then finished the day with more APEX at the APEX Open Night for more neat apps and tools.

Looking forward to tomorrow.

Advertisements

Timestamps for the year 12800?!


Just found this data yesterday, not sure when or how it got into the real table.
Ironically the column that is corrupt is the mod_date which could have told me when.
Note I can only display 2 digits of the year. If I try using yyyy format I’ll get an ORA-01877.

I think it’s interesting that even though the data is invalid, Oracle is still able to evaluate it correctly.

SQL> select count(*) from save_bad_timestamp_example where mod_date > TIMESTAMP '9999-12-31 23:59:59.999999999';

  COUNT(*)
----------
        15

SQL> select mod_date,dump(mod_date) from save_bad_timestamp_example;

MOD_DATE                       DUMP(MOD_DATE)
----------------------------   -------------------------------------
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59
24-JUL-00 08.37.58.000000 PM   Typ=180 Len=7: 228,100,7,24,21,38,59

15 rows selected.

SQL>

%d bloggers like this: