Specifies whether strings within double quotation marks are interpreted as string literals or delimited identifiers in the current connection.
1 – Environment
You can use the SET QUOTING RULES statement: o In interactive SQL o Embedded in host language programs to be precompiled o As part of a procedure in an SQL module o In dynamic SQL as a statement to be dynamically executed
2 – Format
SET QUOTING RULES --> runtime-options ----> runtime-options --+---> 'string-literal' ------+-----> +---> parameter -------------+ +---> parameter-marker ------+
3 – Arguments
3.1 – MIA
Specifies that SQL interprets strings within double quotation marks as delimited identifiers. Delimited identifiers are case sensitive. To comply with the ANSI/ISO standard naming conventions, you should use one of these options. In addition, you must use one of these options to use multischema database naming.
3.2 – parameter
Specifies the value of the runtime-options, which must be one of the following: o SQL99 o SQL92 o SQL89 o MIA o SQLV40
3.3 – parameter-marker
Specifies the value of the runtime-options, which must be one of the following: o SQL99 o SQL92 o SQL89 o MIA o SQLV40
3.4 – SQL89
Specifies that SQL interprets strings within double quotation marks as delimited identifiers. Delimited identifiers are case sensitive. To comply with the ANSI/ISO standard naming conventions, you should use one of these options. In addition, you must use one of these options to use multischema database naming.
3.5 – SQL92 or SQL99
Specifies that SQL interprets strings within double quotation marks as delimited identifiers. Delimited identifiers are case sensitive. To comply with the ANSI/ISO standard naming conventions, you should use one of these options. In addition, you must use one of these options to use multischema database naming.
3.6 – SQLV40
Specifies that SQL interprets strings within double quotation marks as string literals. The default is SQLV40.
3.7 – 'string-literal'
Specifies the value of the runtime-options, which must be one of the following: o SQL99 o SQL92 o SQL89 o MIA o SQLV40
4 – Examples
Example 1: Setting the quoting rules to SQL99 SQL> SET QUOTING RULES 'SQL99'; SQL> -- SQL> -- SQL interprets double quotation marks as delimited identifiers. SQL> -- SQL> CREATE TABLE "Employees_Table" cont> ("Employee_ID" CHAR(6), cont> "Employee_Name" CHAR (30)); SQL> -- SQL> -- SQL retains the upper- and lowercase letters within the identifier. SQL> -- SQL> SHOW TABLE EMPLOYEES_TABLE No tables found SQL> SHOW TABLE "Employees_Table" Information for table Employees_Table Columns for table Employees_Table: Column Name Data Type Domain ----------- --------- ------ Employee_ID CHAR(6) Employee_Name CHAR(30) . . . Example 2: Setting the quoting rules to SQLV40 SQL> SET QUOTING RULES 'SQLV40'; SQL> -- SQL> -- When you set the quoting rules to SQLV40, SQL interprets double SQL> -- quotation marks as string literals. SQL> -- SQL> CREATE TABLE "Employees_Table" %SQL-I-DEPR_FEATURE, Deprecated Feature: " used instead of ' for string literal CREATE TABLE "Employees_Table" ^ %SQL-W-LOOK_FOR_STT, Syntax error, looking for: %SQL-W-LOOK_FOR_CON, name, FROM, %SQL-F-LOOK_FOR_FIN, found Employees_Table instead SQL> -- SQL> -- Although you can use double quotation marks for string literals, SQL SQL> -- returns a deprecated feature message. SQL> -- SQL> INSERT INTO EMPLOYEES cont> (EMPLOYEE_ID, LAST_NAME, STATUS_CODE) cont> VALUES cont> ("00500", 'Toliver', '1'); %SQL-I-DEPR_FEATURE, Deprecated Feature: " used instead of ' for string literal 1 row inserted SQL> --