• Facebook
  • Twitter
  • Instagram
  • TikTok
  • YouTube

Learning is not a spectator sport

  • About
  • All Posts
  • The Podcast!
  • Playlists
  • Golden Oldies

Archives

  • Tuning SQL without any access
  • APAC conferences wrap up
  • South Africa Oracle User Group conference was a blast!
  • Turbo boost your LOBs and JSON
  • XMLTYPE on Autonomous
  • SQL trace on Autonomous
  • The AI World 2025 mega download!
  • Wrapping up Oracle AI World
  • Security predicates exposed #JoelKallmanDay
  • Soft Deletes via Partitioning
  • My Session Picks for AI World – Thursday
  • My Session Picks for AI World – Wednesday
  • My Session Picks for AI World – Tuesday
  • My Session Picks for AI World – Monday
  • The Moment for Database Documentation has come!
  • MERGE in 23ai – so much more than RETURNING
  • Low code is dead
  • Mixing and matching
  • Troubleshooting External Scheduler Jobs
  • AI World and the power of APEX
  • Quick tip for OpenAI on APEX
  • I got shamed into using AutoUpgrade
  • Transactions on LiveSQL
  • Pictorial highlights from Yatra 2025
  • First dabblings with SQLcl MCP server
  • Can you prioritise DDL locks?
  • Are the Fundamentals Too Much to Ask?
  • The junior programmer at your company might not be a human being
  • The first 10 years
  • A new optimizer constant
  • Database timezone versus OS timezone
  • Customizing the Oracle Documentation
  • In-Database SQL formatter
  • Old style export/import and Autonomous
  • AWR extract – Why did SYSAUX explode?
  • Statistics on Global Temporary Tables
  • Smashing a database on my PC
  • APPEND_VALUES redux – Why Community Matters
  • Calling out LinkedIn Clickbait
  • APEX 24 exports – PL/SQL and SQLcl
  • You can’t beat FREE STUFF !
  • Can you REALLY drop those columns?
  • UNION versus UNION ALL
  • Don’t jump on that Zoom call … at least not right away
  • Spaghetti code is Good code
  • More Features just by Patching
  • Global Temporary Tables and Dynamic Sampling
  • Vectors in Oracle Database 23ai FREE
  • International Women’s Day
  • Sequences in PL/SQL
  • The APEX data dictionary
  • Understanding REUSE STORAGE
  • Creating rows from nothing – time for something better
  • JSON_OBJECT_T and the PGA
  • More zero outage goodies
  • JDBC and the FetchSize – Part 2
  • JDBC, the FetchSize and staying up to date
  • DataPump – niche fix
  • OPatch – The “File In Use” error that wasn’t
  • The year in numbers
  • Christmas Puzzle – The Solution
  • Kris Kringle the Database – The Christmas MYSTERY
  • Kris Kringle the Database – All gather ROUND
  • Kris Kringle the Database – What a Great GROUP
  • Kris Kringle the Database! What DAY is it?
  • Kris Kringle the Database – Friday RANT
  • Kris Kringle the Database – Taking the LEAP
  • Kris Kringle the Database – No Fault in DEFAULT
  • Kris Kringle the Database – Know your ABC
  • Kris Kringle the Database – Get the HINT
  • Kris Kringle the Database – Getting the BAND together
  • Kris Kringle the Database – Sequence Values
  • Kris Kringle the Database – Why NVL is smart
  • Kris Kringle the Database – A Foreign Foreign Key Option
  • Kris Kringle the Database – The BEST error
  • Kris Kringle the Database – The Lazy Date
  • Kris Kringle the Database – Magic Dates
  • Kris Kringle the Database – GROUP BY out of sorts?
  • Kris Kringle the Database – Go higher with hierarchies
  • Kris Kringle the Database – Index Compression
  • Kris Kringle the Database – WIDTH_BUCKET
  • Kris Kringle the Database! – Truncate and Indexes
  • UPDATE SET ROW – Convenience Might Be Costly
  • Highlights from the EMEA tour
  • SQL*Plus access without an OS login
  • Better JSON – from CLOB to BLOB
  • PL/SQL and mistaken IDENTITY
  • Validating Constraints – An alternative approach to the alternative approach!
  • Quick 23ai Tip – Simple list to SQL
  • How I scraped the CloudWorld catalog
  • The CloudWorld 2024 mega download!
  • Oracle Text in 23ai
  • Navigating the Oracle Database documentation
  • SQL … I am so confused
  • CloudWorld–Thursday
  • CloudWorld Agenda and … APEX!
  • CloudWorld–Wednesday
  • CloudWorld–Tuesday
  • CloudWorld–Monday
  • Why I blog – redux
  • Safeguard your APEX workspaces and applications
  • 23ai – where your vector indexes are stored
  • SQL*Loader rows vanish!
  • Quick Tip – Vector Indexes in 23ai
  • Got Issues Running an Installer / Assistant on Windows ?
  • Schema level grant in 23ai
  • Flashback Query – an important warning
  • A recommendation for ENUMERATION DOMAINS
  • Tracking SQL macro dependencies
  • Data Centric Apps are better when they do NOT work
  • A SQL conundrum
  • Backup Paranoia
  • The One SQL Thing You Should Never Use
  • 23ai – Leave Your Wallet at Home
  • Will I lose my existing AUDIT settings in 23ai?
  • Switching services on Autonomous now easier
  • I wrote a TERRIBLE app
  • Bitten by the leap year?
  • Scalar SQL Macros – cherry pick the best features
  • One Billion Rows – Gerald’s Challenge
  • You can’t partition by time zone, but maybe you can!
  • Quick color coding hack for your terminal
  • COUNT(*) versus COUNT(1) – the finale
  • Storm in a TRUNCATE cup
  • OT: Working with Camtasia
  • XMLTYPE on Autonomous
  • 2023 – what a year!
  • The "ultimate" database FREE edition
  • Using AI for test data
  • JSON and the optimizer
  • Express Edition needs BIGFILE
  • The smaller the database, the more important BIGFILE is
  • Using ROWID for efficient parallel execution
  • New Podcast Episode – The Burden of Proof
  • Reset a sequence #JoelKallmanDay
  • SQL Macros will change the world
  • Its back! The CloudWorld MEGA download!
  • Planning for CloudWorld – Lets bring this baby home on Thursday!
  • Using the 23ai Free Database VM? Check this setting
  • Planning for CloudWorld … Wednesday is the LAB extravaganza!
  • Planning for CloudWorld … Tuesday is a big day
  • DBMS_STATS – What is going on?
  • TIL a new thing about Private Temporary Tables
  • ChatGPT versus India
  • Using Express or Free edition? A potential trap
  • Time Sorted IDs
  • ORDS upgrade to 23.2. C’mon folks it’s easy!
  • What can you find out in 60 seconds?
  • Enhancing the EXCHANGE PARTITION command
  • More Boolean features in 23ai
  • Dealing with changes to READ ONLY data
  • Why I blog
  • Bringing Multimedia back into 19c!
  • Some "must-have" ideas for your next meetup
  • Adding APEX 23.1 to your Database Free VM
  • Is "fragmentation" still a dirty word?
  • Can you pass the EMPTY SCHEMA test?
  • Sample schemas are now easier than ever
  • Better error messages means less errors
  • 23c for Developers is HERE
  • Avoiding INSERT glitches with SQL*Plus and SQLcl
  • A key difference between TP and TPURGENT
  • When EZCONNECT is not so easy
  • The new forums
  • SQL engine and PL/SQL functions
  • The podcast is back for 2023!
  • ORDS upgrades are so easy
  • Audit trails and the importance of TIMEZONE
  • TEMP is a four letter word
  • 2022 – the year in review
  • Faster operations with CLOBs
  • The cost of DBMS_PARALLEL_EXECUTE
  • Google-like search for your entire application
  • I did not write this blog post
  • From stateful to stateless PL/SQL
  • A Security Disaster
  • The Halloween Pumpkins of Terror
  • CloudWorld is done!
  • CloudWorld – Thursday Thrills
  • CloudWorld – Wednesday Avawanche
  • Easy data access from Excel #JoelKallmanDay
  • Quick Tip on Datapatch
  • CloudWorld – Tuesday Turmoil
  • What are the Squirrels doing? SQL fun and games
  • Patching just keeps getting easier
  • Can you FLASHBACK an IDENTITY column?
  • INTERVAL partitions in multiple tablespaces
  • XMLTABLE and data “corruption”
  • The DBMS_REDEFINITION trap
  • Natural Keys versus Surrogate Keys….Here we are again!
  • A simple benchmark harness
  • Powerpoint hack for tech presenters
  • Juice up your JSON on Autonomous
  • Digging deeper into SQL under APEX
  • PL/SQL – choosing the BEST data type
  • Kscope 22 – the joy of in-person conferences
  • Comparing two database objects for differences
  • Recycling saves the planet but maybe not your database
  • Is my table marked for archive?
  • Version 7 was so much better…
  • The Fractional Part of a TIMESTAMP. Be careful.
  • Implementing dynamic partitions AND subpartitions
  • DBMS_OUTPUT … A (formatting) love story
  • My poor developers! PLSQL is going to be so hard on them!
  • A little bit of PLSQL and a little bit of network
  • A little bit of PLSQL can be a huge win
  • DBMS_METADATA for INDEXES
  • Enforcing DEFAULT values
  • Block recovery a lot easier than I thought
  • When re-ordering columns is warranted
  • Don’t run tight on PGA
  • After you clone your pluggable database
  • Cleaner DDL than DBMS_METADATA
  • INITRANS grabs a little more space
  • V$SESSION_LONGOPS and parallel query
  • A new dictionary view for privileges
  • Awesome DATE / TIMESTAMP enhancement in Autonomous Database
  • Silent data corruption – constraints spanning multiple rows
  • New Podcast Episode – The Optimizer with Nigel Bayliss
  • Careful with SQL*Plus and SQL_ID feedback
  • UTL_HTTP, secure hosts and ORA-24263 certificate errors
  • New Podcast Episode! Why every DBA should learn APEX
  • Wrapping up 2021
  • Twas the night before … log4j
  • Christmas SQL
  • Detecting if your database is multitenant
  • SQL*Plus shortcut for fast data unload
  • The Importance Of Testing
  • Testing versus the Database
  • SQL Macros – complex SQL made easy. Elapsed time calculation
  • The big table dilemma – what about transaction rates?
  • When does a table become too big?
  • Formula 1 data–staying up to date
  • Database World 2021 – now it is your turn
  • APEX demos – Formula 1 Racing Data ?
  • Quick and easy sample data
  • Keeping my SQLcl toasty fresh!
  • New podcast episode! ORACLE-BASE enters the chat
  • 19c Express Edition #JoelKallmanDay
  • The HOST command in SQL*Plus and SQLcl
  • Get the SQL_ID for a SQL statement BEFORE you run it
  • Integration with SQL
  • EZconnect for SQL*Plus
  • 21cXE – post install tip
  • Is my table temporal?
  • SQL trace on your cloud database
  • Can you solve this blocksize puzzle?
  • New Podcast Episode! The most important skill you need
  • Before you case-insensitive your whole database!
  • 21c … a more secure DataPump
  • 21c database creation seems to hang
  • 21c software installation OS groups
  • 21c software … where did everything go?
  • New podcast episode! Testing and breaking things
  • We killed sequence contention!
  • Blockchain tables … the usage model
  • Time zones, blockchain and stopping hackers
  • UTL_CALL_STACK lends a helping hand to DBMS_UTILITY
  • Drop all baselines
  • 19.11 Database Release Update
  • Keeping OPatch updated with a simple SQL query
  • New Podcast Episode! Lets talk about SQL Tuning
  • CURSOR_SHARING and ORDER BY
  • More analysis, less assassination
  • PL/SQL performance in 19c
  • APEX 21.1.1 – the first round of improvements
  • Get complete DDL for a schema
  • Oracle Magazine – an archive of sorts
  • Parallel DML and locking – going manual
  • Data loads on INTERVAL partitioned tables
  • RIP Joel Kallman
  • Why indexes are so fast at finding a key
  • Blazingly fast documentation search with APEX
  • APEX_DATA_PARSER turbo boost!
  • SQL*Net and the CONTAINERS clause
  • The performance report you are NOT using
  • Why does SUM look broken for window functions?
  • Much ado about (paying) nothing
  • Big bits – really long bit strings
  • New Podcast Episode! Every index is a bug
  • Better performance when querying the V$ views
  • UNLONG my dictionary – those pesky LONG columns
  • (Offtopic) Month 1 is in the books…Thanks Sarah
  • Column names you should NOT use
  • Level up your Zoom game
  • "TWP" – technical white paper
  • Pi day 2021
  • New podcast episode! Block internals
  • DBMS_METADATA – hitting its limit
  • Extended VARCHAR2 and the hidden LOB
  • ALL_ARGUMENTS missing information?
  • Free space requirements for ALTER TABLE
  • The podcast is go!
  • Expanded TYPE definitions for PL/SQL 21c
  • Counting business days between 2 dates
  • Blockchain tables are here in 19c!
  • Blockchain tables in 21c? A word of warning
  • Datatype conversions – strange internal function
  • New Year … new idea … new channel
  • PL/SQL in 21c gets amazing new loop iterators
  • How long will the script take to run?
  • "Big Mac and Size"..Handling large SQL Macros
  • The APEX PSE christmas present!
  • 2020 in review
  • Solving a John Conway puzzle with SQL
  • The invisible restore point
  • The AskTOM multimedia experience!
  • The power of SQL macros
  • The missing multiplication aggregation in SQL
  • SQL Macros = SQL Injection ?
  • Faster software installations
  • Application Express – the PSE update
  • Updating my APEX 20.2 installation
  • Math and SQL: Two of my favourite things
  • APEX 20.2 comes to town (well, to my PC)
  • The weirdest reason to avoid SELECT *
  • Why you keep getting "ORA-01653: unable to extend table"
  • Compression default settings
  • When can I use SQL Macros?
  • Age calculations – Just how old ARE you?
  • The CEIL function, dates and floating point numbers
  • Docs hack to save you time!
  • DBMS_JOB and 19c – code changes needed
  • Frequency histogram – where did that estimate come from?
  • How to control resource usage on Autonomous
  • How to make queries to DBA_FREE_SPACE faster
  • How to do a GRANT on an entire schema
  • How to upgrade to Oracle 19.8 on Windows
  • Developer Live wrap up
  • Faster DISTINCT operations in 19c
  • How to stop your site from being Clickjacked!
  • How to change Scheduler maintenance windows
  • Automatically generate audit capture for tables
  • How to TREAT data in a CLOB as JSON
  • SQL tuning with Hashing and Sorting
  • DDL gets my goat
  • Completely free training for Oracle novices
  • Upgrading…Its Time!
  • How to generate random unique values
  • Why relying on default DATE formats is a bug
  • A better way of calculating Database space usage
  • MAX_STRING_SIZE and the data dictionary
  • How to migrate to SECUREFILE with DataPump
  • Take care with Read-Only partitions in 18c
  • Upgrading from 19.6 to 19.7 on Windows
  • Getting a dog improved my productivity
  • MAX_IDLE_BLOCKER_TIME to stop locking problems
  • Code re-use in PL/SQL might just need SQL
  • Patching APEX 20 with patch 30990551
  • APEX upgrade – don’t forget your CDN
  • Arbitrary length addition and subtraction
  • Free In-memory in Oracle Database 19c
  • Why you might add columns to external tables
  • SQL Plus and the ROWPREFETCH parameter
  • Expertise might not be the way forward
  • PGA memory consumption with BLOBs
  • Active Data Guard – limitations on ROWTYPE
  • Combinations and consequences
  • LOBs are larger in multibyte databases
  • Tightened security in 20c for Oracle maintained accounts
  • Working from home… Welcome!
  • Nulls are not stored in indexes … most of the time
  • Simple transaction benchmark on Oracle Database
  • When upgrading, choose 19c not 18c
  • GROUP BY better than DISTINCT for materialized views
  • New LINESIZE settings for SQLPlus
  • Handling UTL_FILE_DIR and DIRECTORY objects
  • Checking status of the Database Scheduler
  • Avoid orphaned Lockdown Profiles
  • Getting the most out of in-memory – part 2
  • Getting the most out of in-memory
  • Why all pluggable database names should be unique
  • Listener log data mining with SQL
  • dbca silent mode – Windows
  • 2019-what grabbed your attention
  • Larger number of Exadata storage indexes
  • Do you work in I.T?
  • Cloning a schema with a one line command
  • DML error logging – customising the error log table
  • The holistic SQL tuning series
  • The definition of proof
  • PIVOT does not work with materialized view refresh
  • All the OpenWorld 2019 downloads!
  • Then OpenWorld mega-list
  • Extending in-lists past the 1000 item barrier
  • Speaker info for Perth, Australia
  • My OpenWorld!
  • A new use for DML error logging
  • DDL invalidates your SQL right ?
  • No more stale statistics in 19c
  • Plugzilla! A pluggable cloning utility
  • Autonomous Transaction Processing – your slice of the pie
  • Take a COPY out of SQLcl’s book
  • Statistics on Load
  • The APEX interface to the OOW catalog is back
  • HIGH_VALUE (and other LONG columns) revisited
  • Same dog, different leash – functions in SQL
  • MERGE and ORA-8006
  • SMON_SCN_TIME and ORA-8161? Digging deeper
  • Kscope Sunday will be awesome
  • With and without WITH_PLSQL within a WITH SQL statement
  • Advice on fragmentation and shrinkage
  • Generic data models … generic applications … ugh
  • DBMS_JOB – the joy of transactions
  • DBMS_JOB – watching for failures
  • Better optimizer plans for adhoc search
  • Generating INSERT scripts that run fast!
  • Nostalgia and choosing your in-flight movie
  • Partition loading in direct mode
  • Raw partitions?
  • Take care with automatic indexes
  • Capture all DDL run on a database instance
  • PL/SQL – Don’t mix and match scope
  • Quick and easy masking
  • APEX Upgrade redux
  • Application Express 19.1
  • Bulk processing with FORALL and INSERT-SELECT
  • Do not set DETERMINISTIC on functions unrealistically
  • Long running scheduler jobs
  • All of my Oracle Magazine articles
  • External table preprocessor on Windows
  • Connections with a wallet – redux
  • Disabled EZCONNECT
  • Use V$SQLSTATS not V$SQL to find expensive SQL
  • Worth the wait
  • Statistics on Object tables
  • MERGE and ORA-30926
  • The death of UTL_FILE – part 2
  • Use the features available!
  • DBMS_JOB is an asynchronous mechanism
  • Work Life Travel balance
  • LISTAGG hits prime time
  • Patch conflicts
  • From Database 18.3 to 18.5 (on Windows)
  • EXPORT not GATHER with DBMS_STATS
  • My APEX was fine and then it wasn’t
  • 2018-what grabbed your attention
  • Your New Years Resolution
  • Another day…another "use the right datatype" post
  • SQL Injection – A Christmas Carol
  • Your AskTOM Top 10 for 2018
  • It’s all downhill past 30
  • Automatic sequences not being dropped
  • The phantom tablespace
  • IRR function in PLSQL
  • You need 10 minutes! Not 5, not 15, not 7
  • Happy Thanksgiving!
  • 18c and the ignoring of hints
  • Add ORDER BY to make ANY query faster
  • Interval versus Range partitions
  • The Openworld Mega-Download!
  • The strange place for INHERIT PRIVILEGES
  • OpenWorld is done!
  • 18c XE–running locally
  • 18c XE is live!
  • OpenWorld Wednesday – step right up!
  • Compressed LOB–my table got bigger?
  • LOBs vs Data – when compression occurs
  • ODC Appreciation Day–LOB compression
  • OpenWorld Tuesday … yep, still screwed
  • Partial Indexes–Take Care With Truncate
  • Easy as pi…. hole.
  • My APEX 18.2 upgrade in a nutshell
  • OpenWorld Monday…I’m so screwed
  • Correcting datatypes with minimal downtime
  • Datatype conversion laziness … yet another reason
  • Another little 12c improvement
  • Partial indexing – get the dictionary definitions right
  • Connor and Chris at OpenWorld
  • The full stack developer….is BACK for 2018!
  • Modifying tables without losing materialized views
  • Complex materialized views? Try a table first
  • 18c database creation on Windows
  • 18c Database installation on Windows
  • Take care with regular expressions
  • Gooey GUIDs
  • Let’s talk about Techiquette
  • Building community via the speaker community
  • Humble pie made with NULL strings
  • Hyper-partitioned index avoidance
  • 18.3 As easy as 1…2…3
  • Searching in Oracle Database documentation
  • Complex materialized views and fast refresh
  • Standard Edition–different optimizer but still cool
  • UTL_FILE_DIR and 18c
  • More triggers are better
  • DDL for constraints – subtle things
  • The death of UTL_FILE
  • When WHEN went faster
  • Juicing up UTL_FILE
  • The simplest things….can be risky
  • The AskTOM data model
  • “Call me!” Many many times!
  • Attribute clustering….super cool
  • You need scaling huh? Maybe it’s just ego
  • From file names to directory hierarchy
  • 18.2 patch… painless for me
  • When you screw up … make it positive for your users
  • Concurrency … the path to success and the path the failure
  • TO_DOG_YEAR
  • New day….new month….New AskTOM
  • Hybrid histograms
  • Trip down memory lane
  • Text indexes for numbers
  • Cool stuff with partition elimination
  • ROWNUM and ORDER BY
  • Choose your names wisely
  • 18c merge partition online
  • 18c–If you can’t wait
  • Execution plans on LiveSQL
  • Oracle Database 18c
  • AskTOM Office Hours for DBA’s
  • NVL vs COALESCE
  • NULL’s vs NOT NULL’s and Performance
  • Getting started…adding an account to use
  • Those pesky LONG columns
  • Identity columns in 12c … just a sequence ?
  • Subtle changes in XML, 11g vs 12c
  • Dealing with IP addresses
  • Brand new year ? Brand new to installing Oracle ?
  • Clone a table
  • Licensed for Advanced Compression? Don’t forget the network
  • It’s not about ego … it’s about knowledge
  • 2017–what grabbed your attention
  • Seasons greetings from the AskTOM team
  • iASH–my “infinite ASH” routine
  • LOBs from afar
  • So good … it’s scary
  • Buffer cache hit ratio–blast from the past
  • UKOUG is coming
  • Parsing freeform data in flat files
  • “Oh…another language is too hard”
  • Why being wrong can be awesome
  • Idle banter
  • Buzzword Bingo
  • OpenWorld 2017–grab ALL of the content
  • Oracle Developer Community Appreciation Day
  • Snapshots from OpenWorld so far
  • My OpenWorld theme song
  • The devastating death PC emoji of doom
  • AskTOM TV–episode 11
  • Woo hoo … more OpenWorld 17 content
  • OpenWorld 2017–where is the tech content ?
  • Partition-wise join
  • Updating indexes with partition maintenance
  • LOBs and tiny typos
  • Partitioning Guide updated
  • The AskTOM team at OpenWorld 2017
  • Please keep your foreign keys
  • Upgrade with no effort
  • Behold the full stack developer
  • 12c Statistics on load–special cases
  • Choosing a password scheme for the database
  • AskTOM–more experts to help you!
  • Oracle Code … Not for database people ?
  • Interval partitioning just got better
  • Quick tip–database link passwords
  • AskTOM TV episode 8
  • Top Ten Travel hints and Tips
  • DIY parallel task execution
  • It’s just bad code or bad design … most of the time
  • Index compression–quick tip
  • OTN Yathra 2017
  • Instrumentation … not just for debugging
  • The village idiot
  • Quick tip–identity columns
  • Session killin’ time
  • Transportable Tablespace–part 2
  • Sharing a tablespace between 2 databases
  • SUM is better than DISTINCT
  • Apex Interactive Grid and IOT’s
  • Apex patch for 5.1
  • End of an era …
  • 12c Release 2, set feedback enhancement in SQL PLus
  • Pi Day, March 14
  • 12c Release 2 – Transparent Data Encryption online !
  • TimTams, Twelve Two, and tete-a-tete !
  • Oracle Database 12c Release 2 is here !
  • Better to be safe than sorry…
  • DDL triggers – interesting results
  • Duplicate constraints are impossible right ?
  • The real question is … why are you NOT blogging
  • Partition count for interval partitioned tables
  • AskTom TV
  • The SQL Loader log file … as data
  • How do I get my trace files on a db-as-a-service
  • Haversine PL/SQL
  • Logwriter I/O
  • Extending Flashback Data Archive in 12c
  • Hack-a-Mongo
  • AskTom takes another step forward
  • What you "liked" last year…
  • When local partitions….aren’t
  • UKOUG 2016
  • Multi-table insert
  • A 12.2 treat for the festive season
  • Advanced Replication
  • max_enabled_roles – nice touch
  • Simple demo of message propagation
  • Just one more week
  • Attribute clustering (part 3)
  • Attribute clustering (part 2)
  • Attribute clustering (part 1)
  • Performing a large correlated update
  • OTN tour 2016 APAC
  • Code enhancements without changing code
  • BULK COLLECT into nested table
  • Truncating a timestamp to the second
  • Taking a peek at SYS_CONTEXT
  • Translating SQL (a migration tool)
  • Locked rows and lunch breaks ? A simple fix
  • Generating rowids
  • Running external programs from the scheduler
  • Exceeding 1 million partitions
  • Pending statistics and partition queries
  • The non-existent partition
  • Transaction subtleties
  • Data denormalization … another take
  • Exadata Express – I’m in !
  • Shirts of OpenWorld
  • The simple fix to date queries
  • Partitioning an existing index
  • Securefile in 12c – part 2
  • Happy birthday to …. well … us ðŸ™‚
  • After OpenWorld…
  • How important is "up to date" to you ?
  • OOW16 – The Park Central
  • A bumper OpenWorld 2016 for me…
  • Syntax formatter might change your data
  • Uber’s move to MySQL
  • Little enhancements are always nice
  • OpenWorld 2016 is not far away
  • Can a query on the standby update the primary ?
  • LAG / LEAD quick tip
  • Direct mode operations on IOT’s
  • dbms_output and the scheduler
  • Granular detail from a summary
  • LOGGING and temporary space
  • Parsing … no big deal eh ?
  • 12c FETCH PERCENT
  • SQL statements using literals
  • MERGE vs UPDATE/INSERT revisited
  • Datatypes for DATES
  • Let me START WITH sequences
  • A cool thing with EXCHANGE PARTITION (part 2)
  • Those pesky dates as strings
  • OTN Yathra– scenes from Bangalore and Hyderbad
  • OTN Yathra Chennai
  • Subtle variations in optimizer stats
  • Quick tip on Function Based Indexes
  • A little known RI clause
  • Active and Inactive Sessions
  • Why PLSQL ?
  • Technology debates
  • Scheduler frequency and repeat intervals
  • AskTom – the personal touch
  • Dealing with URL’s
  • Opatch quick tip
  • Median in SQL
  • Are your SQL Plus scripts going to ‘ell ?
  • Up to date text indexes
  • India bound !
  • The death of the demo script
  • Views as “stored text”
  • Database dictionary corruption ? Maybe not.
  • The first matching row
  • Tightening up your data model
  • TOP-N histograms on 12c
  • FOLLOWS clause
  • Is a year a leap year ?
  • Loading LOB from a file
  • Amped on Amper
  • How can I see my invisible columns
  • Equi-sized partitions on random data
  • Something new learned every day
  • On building SQL
  • DEFAULT SEQ.NEXTVAL in 12c
  • Never rely on an assumed order
  • EXCHANGE PARTITION revisited
  • Public / private cursors
  • AskTom–some thoughts on the future
  • Bitwise operations
  • Auto-backups of PLSQL source
  • Forever is a long time
  • Common GATHER_PLAN_STATISTIC confusion
  • FIRST_ROWS vs FIRST_ROWS_n
  • Histograms on data (not the optimizer)
  • Automatic date formats
  • SQL*Plus quick tip
  • SAMPLE costing
  • Literals and VARCHAR2
  • A old story from the past
  • Session level parallelism
  • Problematic SQL ? PL/SQL is your friend.
  • Not using binds .. banging an obsolete drum ?
  • Converting LONG to CLOB
  • PL/SQL arrays–the index datatype
  • Certification exams
  • A little known ORDER BY extension
  • Multiple partitions
  • AskTom–help us to help you
  • Resolutions for 2016
  • New Years Resolution–test cases
  • Merry Christmas
  • How big is my offline datafile ?
  • How do I stop the use of TRUNCATE
  • The art of describing a problem
  • Highlights from UKOUG
  • CLOBs are not just big varchars
  • UK bound
  • The twelve days of … AskTom
  • Where did my triggers go ?
  • KISS video series for Analytic functions
  • ORA-14758: Last partition … cannot be dropped
  • Countdown to Perth !
  • Apex upgrade 4.2 to 5.0.2
  • A justification for referential integrity constraints
  • Countdown to Sydney
  • CLOBS, from 11g to 12c
  • You dont need that sequence number
  • A new line on NEWLINE
  • The power of metaphor
  • Datapump cleanup
  • SQL*Plus hints and tips
  • Existence checks
  • Passing parameters
  • Why I love working on AskTom
  • My sessions at OpenWorld 2015
  • Virtualbox 5.0
  • AskTom and formatting
  • Fun with array fetch
  • Evolution
  • exitcommit … or your career down the drain
  • Connection shortcuts with a wallet
  • Row transposition
  • Lets Talk DB Perth
  • Longer strings in 12c
  • Presenting in Perth on September 9th, 2015
  • Less calls…more performance (part 2)
  • Less calls…more performance
  • Avoiding public embarrassment with triggers
  • Where is my tracefile
  • Loading file data … easier than you think
  • Mr DISTINCT might not be your friend
  • Better SQL via query block names
  • Index compression–working out the compression number
  • Navigating the world of Oracle database documentation
  • Joining Oracle
  • Things that are there but you cannot use
  • Continuous Delivery – Moving to SECUREFILE
  • Continuous delivery…
  • Partial uniqueness
  • Oracle Developer awards…chosen by Developers
  • The technology community
  • Upgraded and can’t see the tables you could before ?
  • You never stop learning
  • A new challenge…
  • Optimizer curiosity in 12.1.0.2
  • Cross-platform database migration
  • Datapump TTS quick tip
  • From Product X to SQL Developer
  • dropping tablespaces and queues – not happy companions
  • temporary undo in 12c
  • NUMBER data type…what harm can it do ?
  • Avoiding the COMMIT bomb!
  • (OT) an idea for Easter (and well…every day)
  • Edition based redefinition – an apology
  • In-memory – can you REALLY drop those indexes ?
  • WHEN OTHERS … sometimes just not enough
  • v$object_usage catches me out every time ðŸ™‚
  • RETURNING BULK COLLECT and database links
  • GROUP BY – wrong results in 12.1.0.2
  • Inappropriate behaviour
  • Data Pump import makes me crabby
  • Slow external table access
  • Analytics Demo Scripts
  • ORA-4068 and CONSTANT keyword…good and bad
  • truncated ddl in 12c (and 11.2.0.4)
  • AUSOUG conference Perth
  • A simple 12c query with a cool result …
  • Openworld
  • Slides from OakTableWorld and OpenWorld
  • Openworld day minus 3
  • Openworld bound..
  • MERGE and IOT’s ….. unhappy bedfellows
  • 12c – Nested tables vs Associative arrays
  • 12.1.0.2 security grrr…
  • Associative arrays and Nested tables
  • No Hakan factor for IOT
  • 12c nasty with remote query optimization
  • Testing…the surgeon’s approach
  • Upgrade to 12c … credentials
  • Dumb triggers part 2 – session level control
  • Really dumb triggers
  • An accusatory error message
  • SQL injection
  • Pluggable database and restricted sessions
  • OUGN 2014
  • Norway bound
  • views in 12c
  • Oracle Developer Day Perth
  • Free developer day in Perth
  • ORA-65131 grrrr
  • Man…I really really like this ðŸ™‚
  • The challenge of optimization
  • Cloning databases
  • number of set bits
  • The cost of Oracle
  • Once you’ve done your I/O…there’s still more to do !
  • A good day…
  • Openworld slides
  • Thoughts from OpenWorld
  • My stuff at OpenWorld
  • 12c FETCH FIRST
  • Insync 13 Brisbane
  • 30 chars just not enough…
  • Compressed partitions are not compressed tables
  • How big will my index be ?
  • 12c invisible columns
  • 12c ddl logging
  • 12c install on Windows
  • from a friend…
  • Feeling raw about raw…
  • Expunging the Expand all
  • Even on an ocean liner…
  • A little quiz on tkprof
  • can you lock part of a table ?
  • hash keys … almost unique
  • Datatype discipline
  • Default null for collection parameter
  • Long overdue…
  • Its not about the outage
  • OUGN Norway Conference
  • Norway bound
  • ORA_HASH and LOBs …. not nice partners
  • MERGE – concise syntax but not always fastest
  • AUSOUG session February 2013
  • Lob CACHE vs NOCACHE – impact on flashback logging
  • Off to Norway !
  • EXCHANGE PARTITION those pesky columns
  • Why can’t I resize my datafile
  • IOT’s and a nasty bite on TEMP
  • AUSOUG conference 2012
  • slides
  • Openworld day 4
  • Openworld day 3
  • Openworld Day 2
  • Openworld has commenced…
  • Fusion apps
  • Goldengate 11gR2
  • ACE director briefings
  • The next release of Oracle….
  • YY vs YYYY…It can make a BIG difference
  • OakTable World is coming
  • ORA-32033: unsupported column aliasing
  • InSync12
  • ORA-28511: lost RPC connection to heterogeneous remote agent
  • bitmap indexes… better in new versions
  • dbms_hs_passthrough–the magic package
  • Index size
  • Cute partition elimination trick
  • Error when dropping user
  • Mark Townsend
  • Insert after compress
  • Mount Wellington
  • Tasmania 2012
  • Perth AUSOUG meeting
  • Calling all Oracle Tasmanians ðŸ™‚
  • MOS–the brave new world
  • UKOUG–feedback from attendees
  • Updating primary keys and triggers
  • UKOUG day 3
  • UKOUG day 2
  • UKOUG day 1
  • My talks for UKOUG
  • UKOUG day minus 1
  • UK here I come
  • Apress Deal
  • Triggers
  • UK conference coming up
  • Descending index gotcha
  • Post conference weather
  • AUSOUG conference–day 2
  • AUSOUG conference–day 1
  • Careful in 11.2 with dbms_utility
  • Oracle Certification
  • Openworld – Tuesday / Wednesday
  • Openworld – Thursday
  • Oracle Openworld – Monday
  • Hello world!
Like Loading…

One response to “Archives”

  1. New Year … new idea … new channel – Learning is not a spectator sport Avatar
    New Year … new idea … new channel – Learning is not a spectator sport
    January 22, 2021 at 4:42 pm

    […] All Posts […]

Hi I’m Connor McDonald. I love playing with and exploring the Oracle Database. But most of all I like seeing people succeed with the technology.

Subscribe to the blog for new post notifications

  • Facebook
  • Twitter
  • Instagram
  • YouTube
  • About
  • All Posts
  • The Podcast!
  • Playlists
  • Golden Oldies
  • Subscribe Subscribed
    • Learning is not a spectator sport
    • Join 983 other subscribers
    • Already have a WordPress.com account? Log in now.
    • Learning is not a spectator sport
    • Subscribe Subscribed
    • Sign up
    • Log in
    • Copy shortlink
    • Report this content
    • View post in Reader
    • Manage subscriptions
    • Collapse this bar
%d