{% macro oracle__snapshot_hash_arguments(args) -%}
    {# Oracle-specific implementation with NULL-safe SCD_ID generation #}
    LOWER(RAWTOHEX(STANDARD_HASH(
        {%- for arg in args -%}
            coalesce(cast({{ arg }} as varchar(4000)), '__DBT_NULL__')
            {%- if not loop.last %} || '|' || {%- endif -%}
        {%- endfor -%}
        , 'SHA256')))
{%- endmacro %}