SQL 2003 (Annex F, Table 34) Feature Taxonomy and Definition for Core SQL

Derived from Final Committee Draft (FCD) of ISO/IEC 9075-2:2003.

Number Feature ID Feature Name Feature Description
1 B011 Embedded Ada1 - Subclause 20.3, "<embedded SQL Ada program>"
2 B012 Embedded C1 - Subclause 20.4, "<embedded SQL C program>"
3 B013 Embedded COBOL1 - Subclause 20.5, "<embedded SQL COBOL program>"
4 B014 Embedded Fortran1 - Subclause 20.6, "<embedded SQL Fortran program>"
5 B015 Embedded MUMPS1 - Subclause 20.7, "<embedded SQL MUMPS program>"
6 B016 Embedded Pascal1 - Subclause 20.8, "<embedded SQL Pascal program>"
7 B017 Embedded PL/I1 - Subclause 20.9, "<embedded SQL PL/I program>"
1 A conforming SQL-implementation is required (by Clause 8, "Conformance", in ISO/IEC 9075-1) to support at least one embedded language or to support the SQL-client module binding for at least one host language.
8 E011 Numeric data types - Subclause 6.1, "<data type>", <numeric type>, including numeric expressions, numeric literals, numeric comparisons, and numeric assignments
9 E011-01 INTEGER and SMALLINT data types (including all spellings) - Subclause 5.2, "<token> and <separator>": The <reserved word>s INT, INTEGER, and SMALLINT
      - Subclause 5.3, "<literal>": [<sign>] <unsigned integer>
      - Subclause 6.1, "<data type>": The INTEGER and SMALLINT <exact numeric type>s
      - Subclause 13.6, "Data type correspondences": Type correspondences for INTEGER and SMALLINT for all supported languages
10 E011-02 REAL, DOUBLE PRECISON, and FLOAT data types - Subclause 5.2, "<token> and <separator>": The <reserved word>s REAL, DOUBLE, FLOAT, and PRECISION
      - Subclause 5.3, "<literal>": [<sign>] <approximate numeric literal>
      - Subclause 6.1, "<data type>": <approximate numeric type>
      - Subclause 13.6, "Data type correspondences": Type correspondences for REAL, DOUBLE PRECISION, and FLOAT for all supported languages
11 E011-03 DECIMAL and NUMERIC data types - Subclause 5.2, "<token> and <separator>": The <reserved word>s DEC, DECIMAL, and NUMERIC
      - Subclause 5.3, "<literal>": [<sign>] <exact numeric literal>
      - Subclause 6.1, "<data type>": The DECIMAL and NUMERIC <exact numeric type>s
      - Subclause 13.6, "Data type correspondences": Type correspondences for DECIMAL and NUMERIC for all supported languages
12 E011-04 Arithmetic operators - Subclause 6.26, "<numeric value expression>": When the <numeric primary> is a <value expression primary>
13 E011-05 Numeric comparison - Subclause 8.2, "<comparison predicate>": For the numeric data types, without support for <table subquery> and without support for Feature F131, "Grouped operations"
14 E011-06 Implicit casting among the numeric data types - Subclause 8.2, "<comparison predicate>": Values of any of the numeric data types can be compared to each other; such values are compared with respect to their algebraic values
      - Subclause 9.1, "Retrieval assignment", and Subclause 9.2, "Store assignment": Values of one numeric type can be assigned to another numeric type, subject to rounding, truncation, and out of range conditions
15 E021 Character data types - Subclause 6.1, "<data type>": <character string type>, including character expressions, character literals, character comparisons, character assignments, and other operations on character data
16 E021-01 CHARACTER data type (including all its spellings) - Subclause 5.2, "<token> and <separator>": The <reserved word>s CHAR and CHARACTER
      - Subclause 6.1, "<data type>": The CHARACTER <character string type>
      - Subclause 6.28, "<string value expression>": For values of type CHARACTER
      - Subclause 13.6, "Data type correspondences": Type correspondences for CHARACTER for all supported languages
17 E021-02 CHARACTER VARYING data type (including all its spellings) - Subclause 5.2, "<token> and <separator>": The <reserved word>s VARCHAR and VARYING
      - Subclause 6.1, "<data type>": The CHARACTER VARYING <character string type>
      - Subclause 6.28, "<string value expression>": For values of type CHARACTER VARYING
      - Subclause 13.6, "Data type correspondences": Type correspondences for CHARACTER VARYING for all supported languages
18 E021-03 Character literals - Subclause 5.3, "<literal>": <quote> [ <character representation>... ] <quote>
19 E021-04 CHARACTER_LENGTH function - Subclause 6.27, "<numeric value function>": The <char length expression>
20 E021-05 OCTET_LENGTH function - Subclause 6.27, "<numeric value function>": The <octet length expression>
21 E021-06 SUBSTRING function - Subclause 6.29, "<string value function>": The <character substring function>
22 E021-07 Character concatenation - Subclause 6.28, "<string value expression>": The <concatenation> expression
23 E021-08 UPPER and LOWER functions - Subclause 6.29, "<string value function>": The <fold> function
24 E021-09 TRIM function - Subclause 6.29, "<string value function>": The <trim function>
25 E021-10 Implicit casting among the character data types - Subclause 8.2, "<comparison predicate>": Values of either the CHARACTER or CHARACTER VARYING data types can be compared to each other
      - Subclause 9.1, "Retrieval assignment", and Subclause 9.2, "Store assignment": Values of either the CHARACTER or CHARACTER VARYING data type can be assigned to the other type, subject to truncation conditions
26 E021-11 POSITION function - Subclause 6.27, "<numeric value function>": The <position expression>
27 E021-12 Character comparison - Subclause 8.2, "<comparison predicate>": For the CHARACTER and CHARACTER VARYING data types, without support for <table subquery> and without support for Feature F131, "Grouped operations"
28 E031 Identifiers - Subclause 5.2, "<token> and <separator>": <regular identifier> and <delimited identifier>
29 E031-01 Delimited identifiers - Subclause 5.2, "<token> and <separator>": <delimited identifier>
30 E031-02 Lower case identifiers - Subclause 5.2, "<token> and <separator>": An alphabetic character in a <regular identifier> can be either lower case or upper case (meaning that non-delimited identifiers need not comprise only upper case letters)
31 E031-03 Trailing underscore - Subclause 5.2, "<token> and <separator>": The list <identifier part> in a <regular identifier> can be an <underscore>
32 E051 Basic query specification - Subclause 7.12, "<query specification>": When <table reference> is a <table or query name> that is a <table name>, without the support of Feature F131, "Grouped operations"
33 E051-01 SELECT DISTINCT - Subclause 7.12, "<query specification>": With a <set quantifier> of DISTINCT, but without subfeatures E051-02 through E051-09
34 E051-02 GROUP BY clause - Subclause 7.4, "<table expression>": <group by clause>, but without subfeatures E051-03 through E051-09
      - Subclause 7.9, "<group by clause>": With the restrictions that the <group by clause> must contain all non-aggregated columns in the <select list> and that any column in the <group by clause> must also appear in the <select list>
35 E051-04 GROUP BY can contain columns not in <select list> - Subclause 7.9, "<group by clause>": Without the restriction that any column in the <group by clause> must also appear in the <select list>
36 E051-05 Select list items can be renamed - Subclause 7.12, "<query specification>": <as clause>
37 E051-06 HAVING clause - Subclause 7.4, "<table expression>": <having clause>
      - Subclause 7.10, "<having clause>"
38 E051-07 Qualified * in select list - Subclause 7.12, "<query specification>": <qualified asterisk>
39 E051-08 Correlation names in the FROM clause - Subclause 7.6, "<table reference>": [ AS ] <correlation name>
40 E051-09 Rename columns in the FROM clause - Subclause 7.6, "<table reference>": [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ]
41 E061 Basic predicates and search conditions - Subclause 8.19, "<search condition>", and Subclause 8.1, "<predicate>"
42 E061-01 Comparison predicate - Subclause 8.2, "<comparison predicate>": For supported data types, without support for <table subquery>
43 E061-02 BETWEEN predicate - Subclause 8.3, "<between predicate>"
44 E061-03 IN predicate with list of values - Subclause 8.4, "<in predicate>": Without support for <table subquery>
45 E061-04 LIKE predicate - Subclause 8.5, "<like predicate>": Without [ ESCAPE <escape character> ]
46 E061-05 LIKE predicate: ESCAPE clause - Subclause 8.5, "<like predicate>": With [ ESCAPE <escape character> ]
47 E061-06 NULL predicate - Subclause 8.7, "<null predicate>": Without Feature F481, "Expanded NULL predicate"
48 E061-07 Quantified comparison predicate - Subclause 8.8, "<quantified comparison predicate>": Without support for <table subquery>
49 E061-08 EXISTS predicate - Subclause 8.9, "<exists predicate>"
50 E061-09 Subqueries in comparison predicate - Subclause 8.2, "<comparison predicate>": For supported data types, with support for <table subquery>
51 E061-11 Subqueries in IN predicate - Subclause 8.4, "<in predicate>": With support for <table subquery>
52 E061-12 Subqueries in quantified comparison predicate - Subclause 8.8, "<quantified comparison predicate>": With support for <table subquery>
53 E061-13 Correlated subqueries - Subclause 8.1, "<predicate>": When a <correlation name> can be used in a <table subquery> as a correlated reference to a column in the outer query
54 E061-14 Search condition - Subclause 8.19, "<search condition>"
55 E071 Basic query expressions - Subclause 7.13, "<query expression>"
56 E071-01 UNION DISTINCT table operator - Subclause 7.13, "<query expression>": With support for UNION [ DISTINCT ]
57 E071-02 UNION ALL table operator - Subclause 7.13, "<query expression>": With support for UNION ALL
58 E071-03 EXCEPT DISTINCT table operator - Subclause 7.13, "<query expression>": With support for EXCEPT [ DISTINCT ]
59 E071-05 Columns combined via table operators need not have exactly the same data type. - Subclause 7.13, "<query expression>": Columns combined via UNION and EXCEPT need not have exactly the same data type
60 E071-06 Table operators in subqueries - Subclause 7.13, "<query expression>": <table subquery>s can specify UNION and EXCEPT
61 E081 Basic Privileges - Subclause 12.3, "<privileges>"
62 E081-01 SELECT privilege - Subclause 12.3, "<privileges>": With <action> of SELECT
63 E081-02 DELETE privilege - Subclause 12.3, "<privileges>": With <action> of DELETE
64 E081-03 INSERT privilege at the table level - Subclause 12.3, "<privileges>": With <action> of INSERT without <privilege column list>
65 E081-04 UPDATE privilege at the table level - Subclause 12.3, "<privileges>": With <action> of UPDATE without <privilege column list>
66 E081-05 UPDATE privilege at the column level - Subclause 12.3, "<privileges>": With <action> of UPDATE <left paren> <privilege column list> <right paren>
67 E081-06 REFERENCES privilege at the table level - Subclause 12.3, "<privileges>": with <action> of REFERENCES without <privilege column list>
68 E081-07 REFERENCES privilege at the column level - Subclause 12.3, "<privileges>": With <action> of REFERENCES <left paren> <privilege column list> <right paren>
69 E081-08 WITH GRANT OPTION - Subclause 12.2, "<grant privilege statement>": WITH GRANT OPTION
70 E091 Set functions - Subclause 6.9, "<set function specification>"
71 E091-01 AVG - Subclause 6.9, "<set function specification>": With <computational operation> of AVG
72 E091-02 COUNT - Subclause 6.9, "<set function specification>": With <computational operation> of COUNT
73 E091-03 MAX - Subclause 6.9, "<set function specification>": With <computational operation> of MAX
74 E091-04 MIN - Subclause 6.9, "<set function specification>": With <computational operation> of MIN
75 E091-05 SUM - Subclause 6.9, "<set function specification>": With <computational operation> of SUM
76 E091-06 ALL quantifier - Subclause 6.9, "<set function specification>": With <set quantifier> of ALL
77 E091-07 DISTINCT quantifier - Subclause 6.9, "<set function specification>": With <set quantifier> of DISTINCT
78 E101 Basic data manipulation - Clause 14, "Data manipulation": <insert statement>, <delete statement: searched>, and <update statement: searched>
79 E101-01 INSERT statement - Subclause 14.8, "<insert statement>": When a <contextually typed table value constructor> can consist of no more than a single <contextually typed row value expression>
80 E101-03 Searched UPDATE statement - Subclause 14.11, "<update statement: searched>": But without support either of Feature E153, "Updatable tables with subqueries", or Feature F221, "Explicit defaults"
81 E101-04 Searched DELETE statement - Subclause 14.7, "<delete statement: searched>"
82 E111 Single row SELECT statement - Subclause 14.5, "<select statement: single row>": Without support of Feature F131, "Grouped operations"
83 E121 Basic cursor support - Clause 14, "Data manipulation": <declare cursor>, <open statement>, <fetch statement>, <close statement>, <delete statement: positioned>, and <update statement: positioned>
84 E121-01 DECLARE CURSOR - Subclause 14.1, "<declare cursor>": When each <value expression> in the <sort key> must be a <column reference> and that <column reference> must also be in the <select list>, and <cursor holdability> is not specified
85 E121-02 ORDER BY columns need not be in select list - Subclause 14.1, "<declare cursor>": Extend subfeature E121-01 so that <column reference> need not also be in the <select list>
86 E121-03 Value expressions in ORDER BY clause - Subclause 14.1, "<declare cursor>": Extend subfeature E121-01 so that the <value expression> in the <sort key> need not be a <column reference>
87 E121-04 OPEN statement - Subclause 14.2, "<open statement>"
88 E121-06 Positioned UPDATE statement - Subclause 14.10, "<update statement: positioned>": Without support of either Feature E153, "Updateable tables with subqueries" or Feature F221, "Explicit defaults"
89 E121-07 Positioned DELETE statement - Subclause 14.6, "<delete statement: positioned>"
90 E121-08 CLOSE statement - Subclause 14.4, "<close statement>"
91 E121-10 FETCH statement: implicit NEXT - Subclause 14.3, "<fetch statement>"
92 E121-17 WITH HOLD cursors - Subclause 14.1, "<declare cursor>": Where the <value expression> in the <sort key> need not be a <column reference> and need not be in the <select list>, and <cursor holdability> may be specified
93 E131 Null value support (nulls in lieu of values) - Subclause 4.14, "Columns, fields, and attributes": Nullability characteristic
      - Subclause 6.5, "<contextually typed value specification>": <null specification>
94 E141 Basic integrity constraints - Subclause 11.6, "<table constraint definition>": As specified by the subfeatures of this feature in this table
95 E141-01 NOT NULL constraints - Subclause 11.4, "<column definition>": With <column constraint> of NOT NULL
96 E141-02 UNIQUE constraints of NOT NULL columns - Subclause 11.4, "<column definition>": With <unique specification> of UNIQUE for columns specified as NOT NULL
      - Subclause 11.7, "<unique constraint definition>": With <unique specification> of UNIQUE
97 E141-03 PRIMARY KEY constraints - Subclause 11.4, "<column definition>": With <unique specification> of PRIMARY KEY for columns specified as NOT NULL
      - Subclause 11.7, "<unique constraint definition>": With <unique specification> of PRIMARY KEY
98 E141-04 Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action. - Subclause 11.4, "<column definition>": With <column constraint> of <references specification>
      - Subclause 11.8, "<referential constraint definition>": Where the columns in the <column name list>, if specified, must be in the same order as the names in the <unique column list> of the applicable <unique constraint definition> and the <data type>s of the matching columns must be the same
99 E141-06 CHECK constraints - Subclause 11.4, "<column definition>": With <column constraint> of <check constraint definition>
      - Subclause 11.9, "<check constraint definition>"
100 E141-07 Column defaults - Subclause 11.4, "<column definition>": With <default clause>
101 E141-08 NOT NULL inferred on PRIMARY KEY - Subclause 11.4, "<column definition>", and Subclause 11.7, "<unique constraint definition>": Remove the restriction in subfeatures E141-02 and E141-03 that NOT NULL be specified along with every PRIMARY KEY and UNIQUE constraint
      - Subclause 11.4, "<column definition>": NOT NULL is implicit on PRIMARY KEY constraints
102 E141-10 Names in a foreign key can be specified in any order - Subclause 11.4, "<column definition>", and Subclause 11.8, "<referential constraint definition>": Extend subfeature E141-04 so that the columns in the <column name list>, if specified, need not be in the same order as the names in the <unique column list> of the applicable <unique constraint definition>
103 E141-11 Foreign key"s data types need not be the same as the primary key"s - Subclause 11.4, "<column definition>", and Subclause 11.8, "<referential constraint definition>": Extend subfeature E141-04 so that the data types of matching columns need not be the same.
104 E151 Transaction support - Clause 16, "Transaction management": <commit statement> and <rollback statement>
105 E151-01 COMMIT statement - Subclause 16.6, "<commit statement>"
106 E151-02 ROLLBACK statement - Subclause 16.7, "<rollback statement>"
107 E152 Basic SET TRANSACTION statement - Subclause 16.2, "<set transaction statement>"
108 E152-01 SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause - Subclause 16.2, "<set transaction statement>": With <transaction mode> of ISOLATION LEVEL SERIALIZABLE clause
109 E152-02 SET TRANSACTION statement: READ ONLY and READ WRITE clauses - Subclause 16.2, "<set transaction statement>": with <transaction access mode> of READ ONLY or READ WRITE
110 E153 Updatable queries with subqueries - Subclause 7.13, "<query expression>": A <query expression> is updatable even though its <where clause> contains a <subquery>
111 E161 SQL comments using leading double minus - Subclause 5.2, "<token> and <separator>": <simple comment>
112 E171 SQLSTATE support - Subclause 23.1, "SQLSTATE"
113 E182 Module language - Clause 13, "SQL-client modules"
(NOTE 450 - An SQL-implementation is required to supply at least one binding to a standard host language using either module language, embedded SQL, or both.)
114 F031 Basic schema manipulation - Clause 11, "Schema definition and manipulation": Selected facilities as indicated by the subfeatures of this Feature
115 F031-01 CREATE TABLE statement to create persistent base tables - Subclause 11.3, "<table definition>": Not in the context of a <schema definition>
116 F031-02 CREATE VIEW statement - Subclause 11.22, "<view definition>": Not in the context of a <schema definition>, and without support of Feature F081, "UNION and EXCEPT in views"
117 F031-03 GRANT statement - Subclause 12.1, "<grant statement>": Not in the context of a <schema definition>
118 F031-04 ALTER TABLE statement: ADD COLUMN clause - Subclause 11.10, "<alter table statement>": The <add column definition> clause
      - Subclause 11.11, "<add column definition>"
119 F031-13 DROP TABLE statement: RESTRICT clause - Subclause 11.21, "<drop table statement>": With a <drop behavior> of RESTRICT
120 F031-16 DROP VIEW statement: RESTRICT clause - Subclause 11.23, "<drop view statement>": With a <drop behavior> of RESTRICT
121 F031-19 REVOKE statement: RESTRICT clause - Subclause 12.7, "<revoke statement>": With a <drop behavior> of RESTRICT, only where the use of this statement can be restricted to the owner of the table being dropped
122 F041 Basic joined table - Subclause 7.7, "<joined table>"
123 F041-01 Inner join (but not necessarily the INNER keyword) - Subclause 7.6, "<table reference>": The <joined table> clause, but without support for subfeatures F041-02 through F041-08
124 F041-02 INNER keyword - Subclause 7.7, "<joined table>": <join type> of INNER
125 F041-03 LEFT OUTER JOIN - Subclause 7.7, "<joined table>": <outer join type> of LEFT
126 F041-04 RIGHT OUTER JOIN - Subclause 7.7, "<joined table>": <outer join type> of RIGHT
127 F041-05 Outer joins can be nested - Subclause 7.7, "<joined table>": Subfeature F041-1 extended so that a <table reference> within the <joined table> can itself be a <joined table>
128 F041-07 The inner table in a left or right outer join can also be used in an inner join - Subclause 7.7, "<joined table>": Subfeature F041-1 extended so that a <table name> within a nested <joined table> can be the same as a <table name> in an outer <joined table>
129 F041-08 All comparison operators are supported (rather than just =) - Subclause 7.7, "<joined table>": Subfeature F041-1 extended so that the <join condition> is not limited to a <comparison predicate> with a <comp op> of <equals operator>
130 F051 Basic date and time - Subclause 6.1, "<data type>": <datetime type> including datetime literals, datetime comparisons, and datetime conversions
131 F051-01 DATE data type (including support of DATE literal) - Subclause 5.3, "<literal>": The <date literal> form of <datetime literal>
      - Subclause 6.1, "<data type>": The DATE <datetime type>
      - Subclause 6.30, "<datetime value expression>": For values of type DATE 132 F051-02 TIME data type (including support of TIME literal) with fractional seconds precision of at least 0.
      - Subclause 5.3, "<literal>": The <time literal> form of <datetime literal>, where the value of <unquoted time string> is simply <time value> that does not include the optional <time zone interval>
      - Subclause 6.1, "<data type>": The TIME <datetime type> without the <with or without timezone> clause
      - Subclause 6.30, "<datetime value expression>": For values of type TIME 133 F051-03 TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6.
      - Subclause 5.3, "<literal>": The <timestamp literal> form of <datetime literal>, where the value of <unquoted timestamp string> is simply <time value> that does not include the optional <time zone interval>
      - Subclause 6.1, "<data type>": The TIMESTAMP <datetime type> without the <with or without timezone> clause
      - Subclause 6.30, "<datetime value expression>": For values of type TIMESTAMP
134 F051-04 Comparison predicate on DATE, TIME, and TIMESTAMP data types - Subclause 8.2, "<comparison predicate>": For comparison between values of the following types: DATE and DATE, TIME and TIME, TIMESTAMP and TIMESTAMP, DATE and TIMESTAMP, and TIME and TIMESTAMP
135 F051-05 Explicit CAST between datetime types and character types - Subclause 6.12, "<cast specification>": If support for Feature F201, "CAST function" is available, then CASTing between the following types: from character string to DATE, TIME, and TIMESTAMP; from DATE to DATE, TIMESTAMP, and character string; from TIME to TIME, TIMESTAMP, and character string; from TIMESTAMP to DATE, TIME, TIMESTAMP, and character string
136 F051-06 CURRENT_DATE - Subclause 6.31, "<datetime value function>": The <current date value function>
      - Subclause 6.30, "<datetime value expression>": When the value is a <current date value function>
137 F051-07 LOCALTIME - Subclause 6.31, "<datetime value function>": The <current local time value function>
      - Subclause 6.30, "<datetime value expression>": When the value is a <current local time value function>
      - Subclause 11.5, "<default clause>": LOCALTIME option of <datetime value function>
138 F051-08 LOCALTIMESTAMP - Subclause 6.31, "<datetime value function>": The <current local timestamp value function>
      - Subclause 6.30, "<datetime value expression>": When the value is a <current local timestamp value function>
      - Subclause 11.5, "<default clause>": LOCALTIMESTAMP option of <datetime value function>
139 F081 UNION and EXCEPT in views - Subclause 11.22, "<view definition>": A <query expression> in a <view definition> may specify UNION DISTINCT, UNION ALL, EXCEPT, and/or EXCEPT ALL
140 F131 Grouped operations - A grouped view is a view whose <query expression> contains a <group by clause>
141 F131-01 WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views - Subclause 7.4, "<table expression>": Even though a table in the <from clause> is a grouped view, the <where clause>, <group by clause>, and <having clause> may be specified
142 F131-02 Multiple tables supported in queries with grouped views - Subclause 7.5, "<from clause>": Even though a table in the <from clause> is a grouped view, the <from clause> may specify more than one <table reference>
143 F131-03 Set functions supported in queries with grouped views - Subclause 7.12, "<query specification>": Even though a table in the <from clause> is a grouped view, the <select list> may specify a <set function specification>
144 F131-04 Subqueries with GROUP BY and HAVING clauses and grouped views - Subclause 7.15, "<subquery>": A <subquery> in a <comparison predicate> is allowed to contain a <group by clause> and/or a <having clause and/or it may identify a grouped view
145 F131-05 Single row SELECT with GROUP BY and HAVING clauses and grouped views - Subclause 14.5, "<select statement: single row>": The table in a <from clause> can be a grouped view
      - Subclause 14.5, "<select statement: single row>": The <table expression> may specify a <group by clause and/or a <having clause
146 F181 Multiple module support
(NOTE 451 - The ability to associate multiple host compilation units with a single SQL-session at one time.)
- Subclause 13.1, "<SQL-client module definition>": An SQL-agent can be associated with more than one <SQL-client module definition>
(NOTE 452 - With this feature, it is possible to compile <SQL-client module definition>s or <embedded SQL host program>s separately and rely on the SQL-implementation to "link" the together properly at execution time. To ensure portability, applications should adhere to the following limitations:
  • Avoid linking modules having cursors with the same <cursor name>.
  • Avoid linking modules that prepare statements using the same <SQL statement name>.
  • Avoid linking modules that allocate descriptors with the same <descriptor name>.
  • Assume that the scope of an <embedded exception declaration> is a single compilation unit.
  • Assume that an <embedded variable name> can be referenced only in the same compilation unit in which it is declared.)
  • 147 F201 CAST function
    (NOTE 453 - This means the support of CAST, where relevant, among all supported data types.)
    - Subclause 6.12, "<cast specification>": For all supported data types
          - Subclause 6.25, "<value expression>": <cast specification>
    148 F221 Explicit defaults - Subclause 6.5, "<contextually typed value specification>": <default specification>
    (NOTE 454 - Including its use in UPDATE and INSERT statements.)
    149 F261 CASE expression - Subclause 6.25, "<value expression>": <case expression>
    150 F261-01 Simple CASE - Subclause 6.11, "<case expression>": The <simple case> variation
    151 F261-02 Searched CASE - Subclause 6.11, "<case expression>": The <searched case variation>
    152 F261-03 NULLIF - Subclause 6.11, "<case expression>": The NULLIF <case abbreviation
    153 F261-04 COALESCE - Subclause 6.11, "<case expression>": The COALESCE <case abbreviation
    154 F311 Schema definition statement - Subclause 11.1, "<schema definition>"
    155 F311-01 CREATE SCHEMA - Subclause 11.1, "<schema definition>": Support for circular references in that <referential constraint definition>s in two different <table definition>s may reference columns in the other table
    156 F311-02 CREATE TABLE for persistent base tables - Subclause 11.1, "<schema definition>": A <schema element> that is a <table definition>
          - Subclause 11.3, "<table definition>": In the context of a <schema definition>
    157 F311-03 CREATE VIEW - Subclause 11.1, "<schema definition>": A <schema element> that is a <view definition>
          - Subclause 11.22, "<view definition>": In the context of a <schema definition> without the WITH CHECK OPTION clause and without support of Feature F081, "UNION and EXCEPT in views"
    158 F311-04 CREATE VIEW: WITH CHECK OPTION - Subclause 11.22, "<view definition>": The WITH CHECK OPTION clause, in the context of a <schema definition>, but without support of Feature F081, "UNION and EXCEPT in views"
    159 F311-05 GRANT statement - Subclause 11.1, "<schema definition>": A <schema element> that is a <grant statement>
          - Subclause 12.1, "<grant statement>": In the context of a <schema definition>
    160 F471 Scalar subquery values - Subclause 6.25, "<value expression>": A <value expression primary> can be a <scalar subquery>
    161 F481 Expanded NULL predicate - Subclause 8.7, "<null predicate>": The <row value expression> can be something other than a <column reference>
    162 F812 Basic flagging - Part 1, Subclause 8.1.4, "SQL flagger": With "level of flagging" specified to be Core SQL Flagging and "extent of checking" specified to be Syntax Only
    (NOTE 455 - This form of flagging identifies vendor extensions and other non-standard SQL by checking syntax only without requiring access to the catalog information.)
    163 S011 Distinct data types - Subclause 11.41, "<user-defined type definition>": When <representation> is <predefined type>
    164 T321 Basic SQL-invoked routines - Subclause 11.50, "<SQL-invoked routine>"
          - If Feature T041, "Basic LOB data type support", is supported, then the <locator indication> clause must also be supported
    (NOTE 456 - "Routine" is the collective term for functions, methods, and procedures. This feature requires a conforming SQLimplementation to support both user-defined functions and user-defined procedures. An SQL-implementation that conforms to Core SQL must support at least one language for writing routines; that language may be SQL. If the language is SQL, then the basic specification capability in Core SQL is the ability to specify a one-statement routine. Support for overloaded functions and procedures is not part of Core SQL.)
    165 T321-01 User-defined functions with no overloading - Subclause 11.50, "<SQL-invoked routine>": With <function specification>
    166 T321-02 User-defined stored procedures with no overloading - Subclause 11.50, "<SQL-invoked routine>": With <SQL-invoked procedure>
    167 T321-03 Function invocation - Subclause 6.4, "<value specification> and <target specification>": With a <value expression primary> that is a <routine invocation>
          - Subclause 10.4, "<routine invocation>": For user-defined functions
    168 T321-04 CALL statement - Subclause 10.4, "<routine invocation>": Used by <call statement>s
          - Subclause 15.1, "<call statement>"
    169 T321-05 RETURN statement - Subclause 15.2, "<return statement>", if the SQL-implementation supports SQL routines


    Please send feedback to Jonathan Leffler, variously: mailto:jleffler@us.ibm.com or mailto:jonathan.leffler@gmail.com.

    @(#)$Id: sql-2003-core-features.html,v 1.2 2005/07/18 22:51:48 jleffler Exp $