Skip to Main Content

Past Tournament Quizzes

View your results and or take one of these quizzes now.

Filters

Expected format: YYYY-MM-DD
Expected format: YYYY-MM-DD

All Tournaments

Take
Quiz
View
Results
Ended
On
Feature / Summary / AuthorPlayed InCommentaryScore
2025-06-20 FridaySQL: JSON_TRANSFORM

With JSON_TRANSFORM you can apply a series of transformation operations, step by step changing pieces of the JSON into what you want, without touching other parts of the JSON.

Author: Kim Berg Hansen [58734-10679290]
Weekly DBNo Comments
Last: No Comments
-
2025-06-13 FridaySQL: Windowing clause

Oracle Database 21c added the window clause. This enables you to define named windows you can use in the over clause of analytic functions.

Author: Chris Saxon [58694-10675071]
Weekly DBNo Comments
Last: No Comments
-
2025-06-06 FridayOracle PL/SQL: UTL_CALL_STACK

UTIL_CALL_STACK provides an interface for the call stack, backtrace stack and error stack for Pl/SQL program execution.  

It is important to understand the difference between the call stack dynamic depth, the error stack error_depth and the backtrace backtrace_depth when looking for the original source of an error using UTL_CALL_STACK.

Author: Anthony Harper [58594-10675793]
Weekly DBNo New Comments

Last: 2025-05-31 18:12:13
-
2025-05-30 FridayOracle PL/SQL: FOR Loop Iterator

From 21c, the FOR loop allows you to specify an iterand as MUTABLE, meaning you can change it's value inside the loop. That gives you very detailed control of how the iterand is incremented, but at the same time opening up for potentially very convoluted logic, so be careful.

Author: Kim Berg Hansen [58674-10674085]
Weekly DBNo Comments
Last: No Comments
-
2025-05-23 FridayOracle PL/SQL: SQL Macros

You can pass column identifiers to table SQL macros using the columns pseudo operator. For example:

select * from <macro_name> ( columns ( <co1>, <col2>, … ) );

The dbms_tf.columns_t parameter is an array starting at one.

Author: Chris Saxon [58614-10673376]
Weekly DBNo Comments
Last: No Comments
-
2025-05-16 FridaySQL: JSON_TABLE

JSON_TABLE or NESTED can both be used to project rows from json arrays.

Author: Anthony Harper [58474-10664851]
Weekly DBNo Comments
Last: No Comments
-
2025-05-09 FridaySQL: UPDATE Statement

From version 23ai, you can use the FROM/USING clause to limit rows and/or provide source data from one or more other tables in an UPDATE statement.

Author: Kim Berg Hansen [58574-10670065]
Weekly DBNo Comments
Last: No Comments
-
2025-05-02 FridaySQL: Windowing clause

Oracle Database 21c added the groups frame for window functions. This includes rows based on the number of unique values for the sort columns.

Author: Chris Saxon [58494-10666751]
Weekly DBNo Comments
Last: No Comments
-
2025-04-25 FridayOracle PL/SQL: SQL Transpiler

Oracle 23ai introduced the SQL Transpiler, allowing simple PL/SQL functions to be converted to their SQL equivalents.  

The transpiled function then runs as pure SQL instead of executing in the PL/SQL engine.

This reduces the context switching overhead of calling user defined functions from SQL as long as the Transpiler restrictions are met by the function.

Author: Anthony Harper [58374-10663330]
Weekly DBNo Comments
Last: No Comments
-
2025-04-18 FridaySQL: MINUS / EXCEPT Operator

Oracle Database 21c add the all clause to the set operators minus and intersect. It also added the ISO standard except as a synonym for minus.

With the all clause, includes extra rows from the first table with the same values in the second

Author: Chris Saxon [58534-10667063]
Weekly DBNo Comments
Last: No Comments
-
2025-04-11 FridaySQL: INSERT Statement

Oracle Database 23ai added enumeration (enum) domains. When you associate an enum with a column, the database adds a constraint that only allows you to add values from the enum. You can insert the values themselves or referencing the associated enum names.

Author: Chris Saxon [58414-10665334]
Weekly DBNo Comments
Last: No Comments
-
2025-04-04 FridayOracle PL/SQL: Iteration Controls

Loop iteration control enhancements introduced in Oracle 21c allow for more complex logic than simply stepping though a range of numbers.

Author: Anthony Harper [58434-10663329]
Weekly DBNo Comments
Last: No Comments
-
2025-03-28 FridayOracle PL/SQL: TO_CHAR(boolean)

Using TO_CHAR or CAST to convert a BOOLEAN to a string can only result in the values TRUE and FALSE, there are no format model options to choose different ways of converting.

Author: Kim Berg Hansen [58454-10663794]
Weekly DBNo Comments
Last: No Comments
-
2025-03-21 FridayOracle PL/SQL: Qualified Expressions for Associative Arrays

From Oracle Database 21c you can initialize arrays using cursors in qualified expressions (type constructors). You can assign columns from the cursor to the indices of the array.

Author: Chris Saxon [58234-10659051]
Weekly DBNo Comments
Last: No Comments
-
2025-03-14 FridayOracle PL/SQL: Iteration Controls

In 21c, the values of and pairs of iteration controls were added to allow iterating a collection by a value iterand.  

The value iterand is not a reference to the collection that is used by the iteration control to generate the sequence of iterands.

Modifications of the value iterand are not reflected in the collection object.

Author: Anthony Harper [58134-10658720]
Weekly DBNo Comments
Last: No Comments
-
2025-03-07 FridayOracle PL/SQL: is_Date

The is_Date member function of JSON_ELEMENT_T only returns true if the JSON was constructed manually by PUT'ting a DATE datatype into the JSON. If the JSON_ELEMENT_T stems from parsing a JSON string, then is_Date returns false even if the element has a value that matches the ISO 8601 date formatting.

Author: Kim Berg Hansen [58094-10656751]
Weekly DBNo Comments
Last: No Comments
-
2025-02-28 FridayDatabase Design: Query Rewrite

From Oracle Database 23ai, the Oracle optimizer can rewrite a join query to use any equivalent materialized view. This can happen regardless of whether the syntax uses Oracle or ISO style joins.

Author: Chris Saxon [58074-10656708]
Weekly DBNo New Comments

Last: 2025-03-03 09:07:54
-
2025-02-21 FridaySQL: JSON_TRANSFORM

Using JSON_TRANSFORM Set Operations introduced in Oracle 23ai create arrays where the array order is indeterminate.  The SORT operation has to be used to create a determinate array order.

Author: Anthony Harper [57954-10654371]
Weekly DBNo New Comments

Last: 2025-02-19 20:42:58
-
2025-02-14 FridaySQL: ROUND (interval)

In version 23ai, you can ROUND interval datatypes - before that you would have to transform the interval to something numeric and round the number instead.

Author: Kim Berg Hansen [58014-10653745]
Weekly DBNo Comments
Last: No Comments
-
2025-02-07 FridaySQL: Data Quality Operators

There are many options for finding similar strings in Oracle Database:

  • The soundex function
  • Functions in the utl_match package
  • The fuzzy_match operator (added in Oracle Database 23ai)
  • The phonic_encode operator (added in Oracle Database 23ai)
Author: Chris Saxon [58034-10653969]
Weekly DBNo Comments
Last: No Comments
-
2025-02-06 ThursdayOracle PL/SQL: Scalar Macros

The SQL Transpiler can in some cases automatically do what you yourself would have had to use a scalar SQL macro to do, namely eliminate PL/SQL function calls by injecting the equivalent SQL expression into the query, thereby removing the need for context switching between SQL and PL/SQL engine.

Author: Kim Berg Hansen [57994-10653553]
Oracle Database Annual ChampionshipNo Comments
Last: No Comments
-
2025-02-06 ThursdayOracle PL/SQL: JSON_TYPE operator

In 23ai the PL/SQL JSON_VALUE operator returning clause can now accept a PL/SQL aggregate type name.

Author: Anthony Harper [57814-10650676]
Oracle Database Annual ChampionshipNo Comments
Last: No Comments
-
2025-02-06 ThursdaySQL: JSON Flex Columns

JSON Flex Columns allows a duality view to accept JSON documents containing attributes that do not map to relational columns and store those unknown attributes as JSON in a single JSON column in the relational table, providing a lot of flexibility for the application developers.

Author: Kim Berg Hansen [57934-10653089]
Oracle Database Annual ChampionshipNo Comments
Last: No Comments
-
2025-02-06 ThursdayOracle PL/SQL: RETURNING OLD and NEW Column Values

Oracle 23ai adds support for returning OLD and NEW values from UPDATE DML and from MERGE statements.

Author: Anthony Harper [57834-10653498]
Oracle Database Annual ChampionshipNo New Comments

Last: 2025-02-09 16:14:04
-
2025-02-06 ThursdaySQL: Domain DDL

Added in Oracle Database 23ai, flexible domains enable you to define subtype/subtype relationships for values. The flexible domain is the supertype. This has a discriminant column in the choose domain using clause. You use this column in a decode or case expression to choose which subdomain to use based on the column's values.

Author: Chris Saxon [57914-10653535]
Oracle Database Annual ChampionshipNo Comments
Last: No Comments
-
2025-02-06 ThursdaySQL: UPDATE Statement

You can only change rows once in update and merge statements; attempting to change a row many times in one execution raises an error.

If you need to get values from many rows to set a column in one row, use a subquery to aggregate the rows from the source table.

Author: Chris Saxon [57974-10653534]
Oracle Database Annual ChampionshipNo Comments
Last: No Comments
-
2025-01-31 FridayOracle PL/SQL: SYSDATE

The FIXED_DATE system option can be set during the execution of testing code to return repeatable results  when the code being tested uses SYSDATE.

Author: Anthony Harper [51050-10651083]
Weekly DBNo Comments
Last: No Comments
-
2025-01-24 FridaySQL: Boolean Datatype

In a column of datatype BOOLEAN you can insert many different expressions that in one form or other implicitly convert to boolean.

Author: Kim Berg Hansen [57894-10651206]
Weekly DBNo Comments
Last: No Comments
-
2025-01-17 FridaySQL: INSERT Statement

Oracle Database 23ai added table values constructors. This enables you to add many rows in a single insert by providing them as a comma-separated list.

When inserting many rows in one statement, each row must have the same number of values. If values are unknown for some rows and you want them to use the column's default, use the default keyword for that value.

Author: Chris Saxon [57854-10650712]
Weekly DBNo Comments
Last: No Comments
-
2025-01-10 FridaySQL: Domain Functions

ENUM domains introduced in 23ai support the use of multiple aliases for each enum value.  

Author: Anthony Harper [57754-10649104]
Weekly DBNo Comments
Last: No Comments
-
2025-01-03 FridayOracle PL/SQL: Scalar Macros

Scalar macros are not simply a matter of text substitution, they need to represent scalar expressions, so you cannot use aggregate functions in the SQL text returned by a scalar macro.

Author: Kim Berg Hansen [57774-10649035]
Weekly DBNo New Comments

Last: 2025-01-20 15:58:57
-
  • 1 - 31