PROC SQL explicit pass-through SQL compresses spaces in backtick-delimited identifiers when accessing Databricks


PROC SQL explicit pass-through SQL compresses spaces in backtick-delimited identifiers when accessing Databricks.

When you use PROC SQL explicit pass-through SQL against Databricks, identifiers enclosed in backticks (also known as backquotes) might not retain multiple consecutive spaces.

Here is an example:

A column name is referenced as follows:

`Customer   Name`

However, this column name might be submitted to the database as follows, where consecutive spaces are reduced to a single space:

`Customer Name`

As a result, the database can fail to locate the intended table or column and might return an error indicating that the object does not exist.

Cause

PROC SQL explicit pass-through processing modifies SQL text before it is submitted to the target database. During this processing, multiple consecutive spaces inside backtick-delimited identifiers can be collapsed into a single space.

This behavior affects explicit pass-through SQL only.

The issue does not affect the following:

Resolution

A hot fix is planned for SAS® 9.4M9 (TS1M9) that introduces the following opt-in environment variable:

SAS_PRESERVE_BACKTICK_SPACING=1

When enabled, PROC SQL preserves spacing within backtick-delimited identifiers exactly as specified in the SQL statement.

For example, `Customer   Name`is submitted to the target database without modification.

For backward compatibility, existing behavior remains unchanged unless you explicitly enable this option.