Dani Schnider

Dani Schnider

@danischnider.bsky.social

Oracle Databases, Data Warehousing, SQL Performance Tuning, Oracle ACE Director. Craft Beer Brewing, Beer Sommelier.

694 followers136 following146 posts

Dani Schnider reposted

Dani Schnider reposted

You can do conditional COUNT, SUM, etc. in #SQL with SUM ( CASE WHEN ... END ) Or the SQL standard SUM ( ... ) FILTER ( WHERE ... ) Added to Oracle AI Database in release 23.26.1 @danischnider.bsky.social shows in action and how to use it for pivoting buff.ly/oika3CE

buff.lyAggregation Filters in Oracle 26aiThe FILTER clause in SQL allows an easy way of adding WHERE conditions to aggregation functions. There were other ways to implement this before, but this syntax extension is easier to understand. I…

Dani Schnider reposted

Detect unwanted join duplicates in Oracle AI Database with t1 JOIN TO ONE ( t2 ) This uses foreign keys to define the join But what if the constraints are DISABLE or NOVALIDATE? @danischnider.bsky.social shows it runs but has performance implications

buff.lyJOIN TO ONE and ConstraintsThe new JOIN TO ONE syntax extension seems to be very useful for queries on star schemas. But before we can use it, we have to prove how they can be combined with different types of constraint defi…

Dani Schnider reposted

Oracle AI Database 23.26.1 added partition by expression support => you can use an expression directly instead of a column e.g. by email top-level domains with PARTITION BY LIST ( REGEXP_SUBSTR ( email_address, '[^.]+$' ) ) @danischnider.bsky.social demos

buff.lyPartition by ExpressionIn the latest version of the Oracle database, it is now possible to define the partition key of a partitioned table using an expression. This was already possible previously, but only with a small …

Dani Schnider reposted

Sometimes its the small changes that make the big difference Oracle AI Database 26ai added HIGH_VALUE_CLOB HIGH_VALUE_JSON To the partitioning dictionary views => it's easier to query partition boundaries @danischnider.bsky.social discusses

buff.lyEnhanced Partitioning Metadata in Oracle 23cOracle 23c has a lot of small, but useful enhancements that makes life of developers easier. For example two new columns in the data dictionary views for partition metadata.

Dani Schnider reposted

The QUALIFY clause enables you to filter rows using window functions e.g. get the top ranked rows with SELECT ... FROM ... QUALIFY RANK () OVER ( ORDER BY ... ) = ... @danischnider.bsky.social looks at how it works in Oracle AI Database 26ai

buff.lyQUALIFY: The WHERE Condition for Analytic FunctionsFiltering analytic functions was not straight-forward in Oracle and most other databases. Oracle 26ai now supports the QUALIFY clause in SQL. It works like a WHERE condition, but can be used for an…

Dani Schnider reposted

Dani Schnider reposted

Oracle AI Database 23.26.0 developer features include QUALIFY clause GraphQL Table Function for SQL SQL Objects and Collections in MLE JavaScript PL/SQL RESETTABLE clause to avoid ORA-04068: existing state of packages has been discarded @gvenzl.bsky.social

buff.lyWhat’s new for Developers in Oracle AI Database 23.26.0For more information on what’s new in Oracle Database 23.9, see: What’s new for Developers in Oracle Database 23.9 Oracle AI Database 23.26.0 brings some fantastic new features to developers—again!…