Literals: Alternative to single quote to start/end a string

As all know I can use single quotes to start/end a string in SQL and PL/SQL.

SELECT 'my string' AS a
  FROM dual;

A
---------
my string

When we have single quotes in a string we need an escape character. In Oracle this is another single quote. That looks like this.

SELECT 'my string with two single quotes for one '' ' AS a
  FROM dual;

A
-------------------------------------------
my string with two single quotes for one '

Complex strings can be difficult to handle this way. But Oracle provides another option.

SELECT q'[my string]' AS a
  FROM dual;

A
---------
my string

This way you can have as many single quotes in the string as you wish.
There are other options besides [] – {}, ().

SELECT q'{my 1' 2'' 3''' 4'''' string}' AS a
  FROM dual;

A
---------------------------
my 1' 2'' 3''' 4'''' string

I hope this helps.

Oracle Documentation 12c – Literals

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s