Author: Osman DİNÇ
-

Downloading Oracle Patches with AutoUpgrade on Windows Behind a Proxy
In this blog post, I walk you through how to download Oracle patches using AutoUpgrade on a Windows host behind a proxy requiring authentication. The steps include configuring proxy environment variables, creating the necessary directory structure, importing SSL certificates into the Java truststore and setting up a keystore for My Oracle Support (MOS) credentials. Additionally, I share a workaround for a language-specific issue encountered when the Windows display language is set to Turkish, which will be fixed on the next release.
-

How Oracle Changes Your SQL: Uncovering Hidden Query Transformations
The post explores hidden transformations and transltion framework in Oracle databases. It introduces tools like DBMS_SQL_TRANSLATOR.SQL_ID and DBMS_UTILITY.EXPAND_SQL_TEXT, which help analyze and uncover underlying operations, highlighting the intricate nature of database queries and their optimizations.
-

Avoid Misusing LEFT JOIN in SQL Queries
The use of LEFT JOIN in SQL queries is common but often misapplied. This post highlights two pitfalls: using LEFT JOIN when INNER JOIN is appropriate, and applying filter conditions incorrectly. Proper usage of joins enhances clarity and performance for optimizers.
-

How SQL Handles No Matching Rows in Aggregation
SQL aggregation queries behave differently with and without a GROUP BY clause, particularly when no rows match. A query with GROUP BY returns no rows, while without it, a NULL value appears. To align results with expectations, using COALESCE() can return 0 instead of NULL for sums in such cases.
-

Why NO_DATA_FOUND Behavior Differs in SQL and PL/SQL
Many Oracle developers overlook that a PL/SQL function’s SELECT INTO statement will raise a NO_DATA_FOUND exception in PL/SQL but silently return NULL in SQL when no rows are found. This difference can lead to logic bugs. Understanding this behavior is essential for developing robust code and avoiding debugging challenges.
-

Scalar Subquery Caching Behavior in a SQL Statement
Scalar subquery caching is an Oracle SQL optimization technique that improves performance by storing results of scalar subqueries. This technique reduces redundant evaluations and recursive function calls. However, caution is advised when wrapping PL/SQL functions in these queries, as it may lead to unexpected results, particularly with functions needs unique values. Understanding this caching appropriately yields significant benefits.
