`4394
`
`EXHIBIT 1-6
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 2 of 129 PageID #:
`4395
`
`UPDATE
`
`where_clause
`The where_ clause lets you restrict the rows updated to those for which the
`specified condition is true. If you omit this clause, then the database updates all
`rows in the table or view. Please refer to Chapter 6, "Conditions" for the syntax of
`condition.
`
`The where_clause determines the rows in which values are updated. If you do
`not specify the where_ clause, then all rows are updated. For each row that
`satisfies the where_clause, the columns to the left of the equality operator(=) in
`the update_set_clause are set to the values of the corresponding expressions to
`the right of the operator. The expressions are evaluated as the row is updated.
`
`returning_ clause
`The returning clause retrieves the rows affected by a DML statement. You can
`specify this clause for tables and materialized views and for views with a single
`base table.
`
`When operating on a single row, a DML statement with a returning_clause can
`retrieve column expressions using the affected row, rowid, and REFs to the affected
`row and store them in host variables or PL/ SQL variables.
`
`When operating on multiple rows, a DML statement with the returning_ clause
`stores values from expressions, rowids, and REFs involving the affected rows in
`bind arrays.
`
`expr Each item in the expr list must be a valid expression syntax.
`
`INTO The INTO clause indicates that the values of the changed rows are to be
`stored in the variable(s) specified in data_ i tern list.
`
`data_item Each data_ i tern is a host variable or PL/SQL variable that stores the
`retrieved expr value.
`
`For each expression in the RETURNING list, you must specify a corresponding
`type-compatible PL/SQL variable or host variable in the INTO list.
`
`Restrictions The following restrictions apply to the RETURNING clause:
`
`■ The expr is restricted as follows:
`
`Each expr must be a simple expression or a single-set aggregate function
`expression. You cannot combine simple expressions and single-set
`aggregate function expressions in the same returning_ clause.
`
`SQL Statements: SAVEPOINT to UPDATE 19-83
`
`Cloudera Exhibit 1020 - Page 1681 of 1808
`
`Databricks R2 PA 00003817
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 3 of 129 PageID #:
`4396
`
`UPDATE
`
`Examples
`
`Single-set aggregate function expressions cannot include the DISTINCT
`keyword.
`
`■ You cannot specify the returning_clause for a multitable insert.
`
`■ You cannot use this clause with parallel DML or with remote objects.
`
`■ You cannot retrieve LONG types with this clause.
`
`■ You cannot specify this clause for a view on which an INSTEAD OF trigger has
`been defined.
`
`See Also: PVSQL User's Guide and Reference for information on
`using the BULK COLLECT clause to return multiple values to
`collection variables
`
`Updating a Table: Examples The following statement gives null commissions to
`all employees with the job SH_ CLERK:
`
`UPDATE employees
`SET commission_pct = NULL
`WHERE job_id = 'SH_CLERK';
`
`The following statement promotes Douglas Grant to manager of Department 20
`with a Sl,000 raise:
`
`UPDATE employees SET
`job_id = 'SA_MAN', salary= salary+ 1000, department id
`WHERE first_namel I ' ' I llast_name = 'Douglas Grant';
`
`120
`
`The following statement increases the salary of an employee in the employees
`table on the remote database:
`
`UPDATE employees@remote
`SET salary= salary*l.1
`WHERE last_name = 'Baer';
`
`The next example shows the following syntactic constructs of the UPDATE
`statement:
`
`■ Both forms of the update_set_clause together in a single statement
`
`■ A correlated subquery
`
`■ A where_clause to limit the updated rows
`
`19-84 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1682 of 1808
`
`Databricks R2 PA 00003818
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 4 of 129 PageID #:
`4397
`
`UPDATE
`
`UPDATE employees a
`SET department id=
`(SELECT department id
`FROM departments
`WHERE location id= '2100' ) ,
`(salary , commission_pct)
`(SELECT l.l*AVG(salary), l.5*AVG (commission_pct )
`FROM employees b
`WHERE a.department id
`WHERE department_id IN
`(SELECT department_id
`FROM departments
`WHERE location id= 2900
`OR location_id = 2700);
`
`b.department id)
`
`The preceding UPDATE statement performs the following operations:
`
`■ Updates only those employees who work in Geneva or Munich (locations 2900
`and 2700)
`
`■
`
`■
`
`■
`
`Sets department_ id for these employees to the department_id
`corresponding to Bombay (location_id 2100)
`
`Sets each employee's salary to 1.1 times the average salary of their department
`
`Sets each employee's commission to 1.5 times the average commission of their
`department
`
`Updating a Partition: Example The following example updates values in a single
`partition of the sales table:
`
`UPDATE sales PARTITION (sales_ql_l999) s
`SET s.promo_id = 494
`WHERE amount_sold > 9000;
`
`Updating an Object Table: Example The following statement updates a row of
`object table tablel by selecting a row from another object table table2:
`
`UPDATE tablel p SET VALUE(p) =
`(SELECT VALUE(q) FROM table2 q WHERE p.id = q.id)
`WHERE p.id = 10;
`
`The example uses the VALUE object reference function in both the SET clause and
`the subquery.
`
`SQL Statements: SAVEPOINT to UPDATE 19-85
`
`Cloudera Exhibit 1020 - Page 1683 of 1808
`
`Databricks R2 PA 00003819
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 5 of 129 PageID #:
`4398
`
`UPDATE
`
`Correlated Update: Example The following example updates particular rows of
`the proj s nested table corresponding to the department whose department
`number equals 123:
`
`UPDATE TABLE (SELECT projs
`FROM dept d WHERE d.dno
`SET p.budgets = p.budgets + 1
`WHERE p.pno IN (123, 456 ) ;
`
`123) p
`
`Using the RETURNING Clause During UPDATE: Example The following example
`returns values from the updated row and stores the result in PL/SQL variables
`bndl, bnd2, bnd3:
`
`UPDATE employees
`SET job_id ='SA_MAN', salary= salary+ 1000, department id
`WHERE last name= 'Jones'
`RETURNING salary*0.25, last_name, department_id
`INTO :bndl,
`:bnd2,
`:bnd3;
`
`140
`
`The following example shows that you can specify a single-set aggregate function in
`the expression of the returning clause:
`
`UPDATE employees
`SET salary= salary* 1.1
`WHERE department_id = 100
`RETURNING SUM(salary ) INTO :bndl;
`
`19-86 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1684 of 1808
`
`Databricks R2 PA 00003820
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 6 of 129 PageID #:
`4399
`
`A
`How to Read Syntax Diagrams
`
`This appendix describes how to read syntax diagrams.
`
`Graphic Syntax Diagrams
`Syntax diagrams are drawings that illustrate valid SQL syntax. To read a diagram,
`trace it from left to right, in the direction shown by the arrows.
`
`Commands and other keywords appear in UPPERCASE inside rectangles. Type
`them exactly as shown in the rectangles. Parameters appear in lowercase inside
`ovals. Variables are used for the parameters. Punctuation, operators, delimiters, and
`terminators appear inside circles.
`
`If the syntax diagram has more than one path, you can choose any path. For
`example, in the following syntax you can specify either NO PARALLEL or PARALLEL:
`
`parallel_clause: :=
`
`NOPARALLEL > - - - - -~
`
`If you have the choice of more than one keyword, operator, or parameter, your
`options appear in a vertical list. For example, in the following syntax diagram, you
`can specify one or more of the five parameters in the stack:
`
`How to Read Syntax Diagrams A-1
`
`Cloudera Exhibit 1020 - Page 1685 of 1808
`
`Databricks R2 PA 00003821
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 7 of 129 PageID #:
`4400
`
`Graphic Syntax Diagrams
`
`physical_attributes_clause::=
`
`storage_clause f - - . /
`
`The following table shows parameters that appear in the syntax diagrams and
`provides examples of the values you might substitute for them in your statements:
`
`Table A-1 Syntax Parameters
`
`Parameter
`
`Description
`
`The substitution value must be the name of an
`object of the type specified by the parameter.
`For a list of all types of objects, see the section,
`"Schema Objects" on page 2-106.
`
`The substitution value must be a single
`character from your database character set.
`
`The substitution value must be a text string in
`single quotes. See the syntax description of
`'text' in "Text Literals" on page 2-61.
`
`Examples
`
`employees
`
`T
`
`s
`
`'Employee records'
`
`table
`
`C
`
`'text'
`
`char
`
`The substitution value must be an expression of last name
`datatype CHAR or VARCHAR2 or a character
`'Smith'
`literal in single quotes.
`
`condition
`
`The substitution value must be a condition that
`evaluates to TRUE or FALSE. See the syntax
`description of condition in Chapter 6,
`"Conditions".
`
`last name > 'A'
`
`date
`
`d
`
`expr
`
`The substitution value must be a date constant TO_DATE(
`or an expression of DATE datatype.
`'01-Jan-2002',
`I DD-MON-YYYY I )
`
`The substitution value can be an expression of
`any datatype as defined in the syntax
`description of expr in "About SQL Expressions"
`on page 5-2.
`
`salary+ 1000
`
`A-2 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1686 of 1808
`
`Databricks R2 PA 00003822
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 8 of 129 PageID #:
`4401
`
`Table A-1 Syntax Parameters
`
`Parameter
`
`Description
`
`Graphic Syntax Diagrams
`
`Examples
`
`72
`
`integer
`
`number
`
`m
`
`n
`
`raw
`
`subquery
`
`db name
`
`The substitution value must be an integer as
`defined by the syntax description of integer in
`"Integer Literals" on page 2-63.
`
`The substitution value must be an expression of
`NUMBER datatype or a number constant as
`defined in the syntax description of number in
`"Numeric Literals" on page 2-62.
`
`AVG (salary)
`15 * 7
`
`The substitution value must be an expression of HEXTORAW ( ' 7D' )
`datatype RAW.
`
`The substitution value must be a SELECT
`statement that will be used in another SQL
`statement. See SELECT on page 19-4.
`
`SELECT last name
`FROM employees
`
`The substitution value must be the name of a
`nondefault database in an embedded SQL
`program.
`
`sales db
`
`db_string
`
`The substitution value must be the database
`identification string for an Oracle Net database
`connection. For details, see the user's guide for
`your specific Oracle Net protocol.
`
`Required Keywords and Parameters
`Required keywords and parameters can appear singly or in a vertical list of
`alternatives. Single required keywords and parameters appear on the main path,
`that is, on the horizontal line you are currently traveling. In the following example,
`library_name is a required parameter:
`
`drop_library::=
`~ DROP H LIBRARY K library_name ) { )
`
`If there is a library named HQ_ LIB, then, according to the diagram, the following
`statement is valid:
`
`DROP LIBRARY hq_lib;
`
`If multiple keywords or parameters appear in a vertical list that intersects the main
`path, one of them is required. That is, you must choose one of the keywords or
`
`How to Read Syntax Diagrams A-3
`
`Cloudera Exhibit 1020 - Page 1687 of 1808
`
`Databricks R2 PA 00003823
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 9 of 129 PageID #:
`4402
`
`Graphic Syntax Diagrams
`
`parameters, but not necessarily the one that appears on the main path. In the
`following example, you must choose one of the two settings:
`
`key_compression::=
`
`integer
`COMPRESS i - -+< - - - -~ -
`
`NOCOMPRESS 1 - - - - - - - -~
`
`Optional Keywords and Parameters
`If keywords and parameters appear in a vertical list above the main path, they are
`optional. In the following example, instead of traveling down a vertical line, you
`can continue along the main path:
`
`deallocate_unused_clause::=
`
`~ KEEP r( size clause 0
`
`'--------'
`
`-
`
`)
`
`DEALLOCATE H UNUSED 1)
`
`4
`
`size_clause: :=
`
`According to the diagrams, all of the following statements are valid:
`
`DEALLOCATE UNUSED;
`DEALLOCATE UNUSED KEEP 1000;
`DEALLOCATE UNUSED KEEP l0G;
`
`Syntax Loops
`
`Loops let you repeat the syntax within them as many times as you like. In the
`following example, after choosing one value expression, you can go back repeatedly
`to choose another, separated by commas.
`
`A-4 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1688 of 1808
`
`Databricks R2 PA 00003824
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 10 of 129 PageID #:
`4403
`
`Graphic Syntax Diagrams
`
`query _partition_clause: :=
`
`PARTITION
`
`Multipart Diagrams
`Read a multipart diagram as if all the main paths were joined end to end. The
`following example is a two-part diagram:
`
`alter_java::=
`
`ALTER
`
`JAVA
`
`RESOLVER
`
`According to the diagram, the following statement is valid:
`
`ALTER JAVA SOURCE jsource_l COMPILE;
`
`Database Objects
`The names of Oracle identifiers, such as tables and columns, must not exceed 30
`characters in length. The first character must be a letter, but the rest can be any
`combination of letters, numerals, dollar signs (S), pound signs (#), and underscores
`u.
`However, if an Oracle identifier is enclosed by double quotation marks ("), it can
`contain any combination of legal characters, including spaces but excluding
`quotation marks. Oracle identifiers are not case sensitive except within double
`quotation marks.
`
`How to Read Syntax Diagrams A-5
`
`Cloudera Exhibit 1020 - Page 1689 of 1808
`
`Databricks R2 PA 00003825
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 11 of 129 PageID #:
`4404
`
`Graphic Syntax Diagrams
`
`For more information, see "Schema Object Naming Rules" on page 2-107.
`
`A-6 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1690 of 1808
`
`Databricks R2 PA 00003826
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 12 of 129 PageID #:
`4405
`
`B
`Oracle and Standard SQL
`
`This appendix discusses Oracle's conformance with the SQL:2003 standards. The
`mandatory portion of SQL:2003 is known as Core SQL:2003 and is found in
`SQL:2003 Part 2 (Foundation) and Part 11 (Schemata). The Foundation features are
`analyzed in Annex F of Part 2 in the table "Feature taxonomy and definition for
`mandatory features of SQL/ Foundation". The Schemata features are analyzed in
`Annex E of Part 11 in the table "Feature taxonomy and definition for mandatory
`features of SQL/ Schemata".
`
`This appendix declares Oracle's conformance to the SQL standards established by
`the American National Standards Institute (ANSI) and the International Standards
`Organization (ISO). (The ANSI and ISO SQL standards are identical.) It contains the
`following sections:
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`ANSI Standards
`
`ISO Standards
`
`Oracle Compliance To Core SQL:2003
`
`Oracle Support for Optional Features of SQL/ Foundation:2003
`
`Oracle Compliance with SQL/ CLI:2003
`
`Oracle Compliance with SQL/ PSM:2003
`
`Oracle Compliance with SQL/ MED:2003
`
`Oracle Compliance with SQL/ XML:2003
`
`Oracle Compliance with FIPS 127-2
`
`Oracle Extensions to Standard SQL
`
`Character Set Support
`
`Oracle and Standard SQL B-1
`
`Cloudera Exhibit 1020 - Page 1691 of 1808
`
`Databricks R2 PA 00003827
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 13 of 129 PageID #:
`4406
`
`ANSI Standards
`
`ANSI Standards
`The following documents of the American National Standards Institute (ANSI)
`relate to SQL:
`
`■ ANSI/ISO / IEC 907 5-1 :2003, Information technology-Database
`languages-SQL-Part 1: Framework (SQL/ Framework)
`
`■ ANSI/ISO / IEC 9075-2:2003, Information technology-Database
`languages- SQL-Part 2: Foundation (SQL/ Foundation)
`
`■ ANSI/ISO / IEC 9075-3:2003, Information technology-Database
`languages-SQL-Part 3: Call-Level Interface (SQL/ CLI)
`
`■ ANSI/ISO / IEC 9075-4:2003, Information technology-Database
`languages-SQL-Part 4: Persistent Stored Modules (SQL/ PSM)
`
`■ ANSI/ISO / IEC 9075-9:2003, Information technology-Database
`languages-SQL-Part 9: Management of External Data (SQL/ MED)
`
`■ ANSI/ISO / IEC 9075-10:2003, Information technology-Database
`languages-SQL-Part 10: Object Language Bindings (SQL/ OLB)
`
`■ ANSI/ISO / IEC 9075-11:2003, Information technology-Database
`languages-SQL-Part 11: Information and Definition Schemas
`(SQL/ Schemata)
`
`■ ANSI/ISO / IEC 9075-13:2003, Information technology-Database
`languages-SQL-Part 13: SQL Routines and Types using the Java
`Programming Language (SQL/ JRT)
`
`■ ANSI/ISO / IEC 9075-14:2003, Information technology-Database
`languages-SQL-Part 14: XML-Related Specifications (SQL/ XML)
`
`These standards are identical to the corresponding ISO standards listed in the next
`section.
`
`You can obtain a copy of ANSI standards from this address:
`
`American National Standards Institute
`25 West 43rd Street
`New York, NY 10036 USA
`Telephone: + 1.212.642.4900
`Fax: +1.212.398.0023
`
`or from their Web site:
`
`http: //webstore.ansi. org/ ansidocstore / default . asp
`
`B-2 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1692 of 1808
`
`Databricks R2 PA 00003828
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 14 of 129 PageID #:
`4407
`
`ANSI Standards
`
`A subset of ANSI standards, including the SQL standard, are INCITS standards.
`You can obtain these from the InterNational Committee for Information Technology
`Standards (INCITS) at:
`
`ht tp://www. inc its .org /
`
`ISO Standards
`The following documents of the International Organization for Standardization
`(ISO) relate to SQL:
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`ISO/ IEC 9075-1:2003, Information technology-Database
`languages-SQL-Part 1: Framework (SQL/ Framework)
`
`ISO/ IEC 9075-2:2003, Information technology-Database
`languages-SQL-Part 2: Foundation (SQL/ Foundation)
`
`ISO/ IEC 9075-3:2003, Information technology-Database
`languages-SQL-Part 3: Call-Level Interface (SQL/ CLI)
`
`ISO/ IEC 9075-4:2003, Information technology-Database
`languages-SQL-Part 4: Persistent Stored Modules (SQL/ PSM)
`
`ISO/ IEC 9075-9:2003, Information technology-Database
`languages-SQL-Part 9: Management of External Data (SQL/ MED)
`
`ISO/ IEC 9075-10:2003, Information technology-Database
`languages-SQL-Part 10: Object Language Bindings (SQL/ OLB)
`
`ISO / IEC 9075-11:2003, Information technology-Database
`languages-SQL-Part 11: Information and Definition Schemas
`(SQL/ Schemata)
`
`ISO/ IEC 9075-13:2003, Information technology-Database
`languages-SQL-Part 13: SQL Routines and Types using the Java
`Programming Language (SQL/ JRT)
`
`ISO/ IEC 9075-14:2003, Information technology-Database
`languages-SQL-Part 14: XML-Related Specifications (SQL/ XML)
`
`You can obtain a copy of ISO standards from this address:
`
`International Organization for Standardization
`1 Rue de Varembe
`Case postale 56
`CH-1211, Geneva 20, Switzerland
`
`Oracle and Standard SQL B-3
`
`Cloudera Exhibit 1020 - Page 1693 of 1808
`
`Databricks R2 PA 00003829
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 15 of 129 PageID #:
`4408
`
`ANSI Standards
`
`Phone: +41.22.749.0111
`Fax: +41.22. 733.3430
`Web site: http: / / www.iso.ch/
`
`or from their web store:
`
`http: //www.iso.ch/ iso / en/ prods - services / ISOstore / store.html
`
`Oracle Compliance To Core SOL:2003
`The ANSI and ISO SQL standards require conformance claims to state the type of
`conformance and the implemented facilities. The minimum claim of conformance is
`called Core SQL:2003 and is defined in Part 2, SQL/ Foundation, and Part 11,
`SQL/ Schemata, of the standard. The following products provide full or partial
`conformance with Core SQL:2003 as described in the tables that follow:
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`Oracle Database database server
`
`Pro*C / C++, release 9.2.0
`
`Pro*COBOL, release 9.2.0
`
`Pro*Fortran, release 1.8. 77
`
`SQL Module for Ada (Mod*Ada), release 9.2.0
`
`Pro*COBOL 1.8, release 1.8. 77
`
`Pro*PL/ I, release 1.6.28
`
`OTT, release 9.2.0.
`
`OTTS, release 8.1.8
`
`The Core SQL:2003 features that Oracle fully supports are listed in Table B- 1:
`
`Table B-1 Fully Supported Core SQL:2003 Features
`
`Feature ID
`
`Feature
`
`E011
`
`E031
`
`E061
`
`E081
`
`E091
`
`ElOl
`
`Numeric data types
`
`Identifiers
`
`Basic predicates and search conditions
`
`Basic privileges
`
`Set functions
`
`Basic data manipulation
`
`B-4 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1694 of 1808
`
`Databricks R2 PA 00003830
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 16 of 129 PageID #:
`4409
`
`ANSI Standards
`
`Table B-1
`
`(Cont.) Fully Supported Core SQL:2003 Features
`
`Feature ID
`
`Feature
`
`Elll
`
`E131
`
`E141
`
`ElSl
`
`E152
`
`E153
`
`E161
`
`E171
`
`F041
`
`FOSl
`
`F081
`
`F131
`
`F181
`
`F201
`
`F221
`
`F261
`
`F311
`
`F471
`
`F481
`
`Single row SELECT statement
`
`Null value support (nulls in lieu of values)
`
`Basic integrity constraints
`
`Transaction support
`
`Basic SET TRANSACTION statement
`
`Updatable queries with subqueries
`
`SQL comments using leading double minus
`
`SQLSTATE support
`
`Basic joined table
`
`Basic date and time
`
`UNION and EXCEPT in views
`
`Grouped operations
`
`Multiple module support
`
`CAST function
`
`Explicit defaults
`
`CASE expressions
`
`Schema definition statement
`
`Scalar subquery values
`
`Expanded NULL predicate
`
`The Core SQL:2003 features that Oracle partially supports are listed in Table B- 2:
`
`Oracle and Standard SQL B-5
`
`Cloudera Exhibit 1020 - Page 1695 of 1808
`
`Databricks R2 PA 00003831
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 17 of 129 PageID #:
`4410
`
`ANSI Standards
`
`Table B-2 Partially Supported Core SQL:2003 Features
`
`Feature ID,
`Feature
`
`Partial Support
`
`E021, Character Oracle fully supports these subfeatures:
`■
`E021-01 , CHARACTER data type
`data types
`
`■
`
`■
`
`■
`
`■
`
`E021-07, Character concatenation
`E021-08, UPPER and LOWER functions
`E021-09, TRIM function
`E021-10, Implicit casting among character data types
`E021-12, Character comparison
`■
`Oracle partially supports these subfeatures:
`E021-02, CHARACTER VARYING data type (Oracle does not
`distinguish a zero-length VARCHAR string from NULL)
`E021-03, Character literals (Oracle regards the zero-length literal ' '
`as being null)
`Oracle has equivalent functionality for these subfeatures:
`E021-04, CHARACTER LENGTH function: use LENGTH function
`-
`instead
`E021-05, OCTET_LENGTH function: use LENGTHB function instead
`E021-06, SUBSTRING function: use SUBSTR function instead
`E021-11 , POSITION function: use INSTR function instead
`
`■
`
`■
`
`■
`
`■
`
`■
`
`■
`
`E051 , Basic
`query
`specification
`
`■
`
`■
`
`■
`
`■
`
`■
`
`Oracle fully supports the following subfeatures:
`E051-01 , SELECT DISTINCT
`E0Sl-02, GROUP BY clause
`E0Sl-04, GROUP BY can contain columns not in <select list>
`E0Sl-05, Select list items can be renamed
`E0Sl-06, HAVING clause
`E0S 1-07, Qualified * in select list
`■
`Oracle partially supports the following subfeatures:
`E0Sl-08, Correlation names in FROM clause (Oracle supports
`correlation names, but not the optional AS keyword)
`Oracle does not support the following subfeature:
`E0Sl-09, Rename columns in the FROM clause
`
`■
`
`■
`
`B-6 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1696 of 1808
`
`Databricks R2 PA 00003832
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 18 of 129 PageID #:
`4411
`
`ANSI Standards
`
`Table B-2
`
`(Cont.) Partially Supported Core SQL:2003 Features
`
`Feature ID,
`Feature
`
`E071, Basic
`query
`expressions
`
`E121, Basic
`cursor support
`
`Partial Support
`
`■
`
`■
`
`■
`
`Oracle fully supports the following subfeatures:
`£071-01, UNION DISTINCT table operator
`£071-02, UNION ALL able operator
`£071-05, Columns combined by table operators need not have
`exactly the same type
`£071-06, table operators in subqueries
`■
`Oracle has equivalent functionality for the following subfeature:
`£071-03, EXCEPT DISTINCT table operator: Use MINUS instead of
`EXCEPT DISTINCT
`
`■
`
`■
`
`■
`
`■
`
`■
`
`Oracle fully supports the following subfeatures:
`£121-01, DECLARE CURSOR
`£121-02, ORDER BY columns need not be in select list
`£121-03, Value expressions in ORDER BY clause
`£121-04, OPEN statement
`£121-06, Positioned UPDATE statement
`£121-07, Positioned DELETE statement
`£121-08, CLOSE statement
`£121-10, FETCH statement, implicit NEXT
`■
`Oracle partially supports the following subfeatures:
`£121-17, WITH HOLD cursors (in the standard, a cursor is not held
`through a ROLLBACK, but Oracle does hold through ROLLBACK)
`
`■
`
`■
`
`■
`
`■
`
`Oracle and Standard SQL B-7
`
`Cloudera Exhibit 1020 - Page 1697 of 1808
`
`Databricks R2 PA 00003833
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 19 of 129 PageID #:
`4412
`
`ANSI Standards
`
`Table B-2
`
`(Cont.) Partially Supported Core SQL:2003 Features
`
`Partial Support
`
`Feature ID,
`Feature
`
`F031, Basic
`schema
`manipulation
`
`■
`
`■
`
`■
`
`Oracle fully supports these subfeatures:
`F031-01, CREATE TABLE statement to create persistent base tables
`F031-02, CREATE VIEW statement
`F031-03, GRANT statement
`■
`Oracle partially supports this subfeature:
`F031-04, ALTER TABLE statement: ADD COLUMN clause (Oracle does
`not support the optional keyword COLUMN in this syntax)
`Oracle does not support these subfeatures (because Oracle does not
`support the keyword RESTRICT):
`F031-13, DROP TABLE statement: RESTRICT clause
`F031-16, DROP VIEW statement: RESTRICT clause
`F031-19, REVOKE statement: RESTRICT clause
`
`■
`
`■
`
`■
`
`F812, Basic
`flagging
`
`Oracle has a flagger, but it flags SQL-92 compliance rather than SQL:2003
`compliance
`
`B-8 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1698 of 1808
`
`Databricks R2 PA 00003834
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 20 of 129 PageID #:
`4413
`
`ANSI Standards
`
`Table B-2
`
`(Cont.) Partially Supported Core SQL:2003 Features
`
`Partial Support
`
`Feature ID,
`Feature
`
`T321, Basic
`SQL-invoked
`routines
`
`■
`
`■
`
`■
`
`Oracle fully supports these subfeatures:
`T321-03, function invocation
`T321-04, CALL statement
`■
`Oracle supports these subfeatures with syntactic differences:
`T321-01, user-defined functions with no overloading
`T321-02, user-defined procedures with no overloading
`■
`The Oracle syntax for CREATE FUNCTION and CREATE PROCEDURE
`differs from the standard as follows:
`In the standard, the mode of a parameter (IN, OUT or INOUT) comes
`before the parameter name, whereas in Oracle it comes after the
`parameter name.
`The standard uses INOUT, whereas Oracle uses IN OUT.
`■
`■ Oracle requires either Is or AS after the return type and before the
`definition of the routine body, while the standard lacks these
`keywords.
`If the routine body is in C (for example), then the standard uses the
`keywords LANGUAGE C EXTERNAL NAME to name the routine,
`whereas Oracle uses LANGUAGE c NAME.
`If the routine body is in SQL, then Oracle uses its proprietary
`procedural extension called PL/SQL.
`Oracle supports the following subfeatures in PL/ SQL but not in Oracle
`SQL:
`T321-05, RETURN statement
`
`■
`
`■
`
`■
`
`Oracle has equivalent functionality for the features listed in Table B-3:
`
`Oracle and Standard SQL B-9
`
`Cloudera Exhibit 1020 - Page 1699 of 1808
`
`Databricks R2 PA 00003835
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 21 of 129 PageID #:
`4414
`
`ANSI Standards
`
`Table B-3 Equivalent Functionality for Core SQL:2003 Features
`
`Feature ID, Feature
`
`Equivalent Functionality
`
`F021, Basic information
`schema
`
`■
`
`■
`
`Oracle does not have any of the views in this feature. However,
`Oracle makes the same information available in other metadata
`views:
`Instead of TABLES , use ALL_ TABLES.
`Instead of COLUMNS , use ALL_ TAB_ COLUMNS .
`Instead of VIEWS, use ALL_ VIEWS.
`However, Oracle's ALL_ VIEWS does not display whether a
`user view was defined WITH CHECK OPTION or if it is
`updatable. To see whether a view has WITH CHECK
`OPTION, use ALL CONSTRAINTS, with TABLE NAME
`equal to the view name and look for CONSTRAINT_ TYPE
`equal to ' v ' .
`Instead of TABLE CONSTRAINTS, REFERENTIAL
`CONSTRAINTS and CHECK_ CONSTRAINTS , use ALL_
`CONSTRAINTS.
`However, Oracle's ALL_ CONSTRAINTS does not display
`whether a constraint is deferrable or initially deferred.
`
`■
`
`■
`
`The Core SQL:2003 features that Oracle does not support are listed in Table B-4:
`
`Table B-4 Unsupported Core SQL:2003 Features
`
`Feature ID
`FSOl
`
`S011
`
`Feature
`
`Features and conformance views
`
`Distinct data types
`
`Note: Oracle does not support E182, Module language. Although
`this feature is listed in Table 35 in SQL/Foundation, it merely
`indicates that Core consists of a choice between Module language
`and embedded language. Module language and embedded
`language are completely equivalent in capability, differing only in
`the manner in which SQL statements are associated with the host
`programming language. Oracle supports embedded language.
`
`B-10 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1700 of 1808
`
`Databricks R2 PA 00003836
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 22 of 129 PageID #:
`4415
`
`ANSI Standards
`
`Oracle Support for Optional Features of SOL/Foundation:2003
`Oracle supports the optional features of SQL/ Foundation:2003 listed in Table B- 5:
`
`Table B-5
`
`Fully Supported Optional Features of SQUFoundation:2003
`
`Feature ID
`
`Feature
`
`B0ll
`
`B012
`
`B013
`
`B014
`
`B021
`
`F281
`
`F411
`
`F421
`
`F491
`
`F555
`
`F561
`
`F721
`
`F731
`
`F781
`
`F801
`
`S151
`
`S161
`
`T201
`
`T351
`
`T431
`
`T611
`
`T621
`
`Embedded Ada
`
`Embedded C
`
`Embedded COBOL
`
`Embedded Fortran
`
`Direct SQL
`(in Oracle, this is SQL-Plus)
`
`LIKE enhancements
`
`Time zone specification
`
`National character
`
`Constraint management
`
`Enhanced seconds precision
`(Oracle supports up to 9 places after the decimal point)
`
`Full value expressions
`
`Deferrable constraints
`
`INSERT column privileges
`
`Self-referencing operations
`
`Full set function
`
`Type predicate
`
`Subtype treatment
`
`Comparable data types for referential constraints
`
`Bracketed comments
`
`Extended grouping capabilities
`
`Elementary OLAP operators
`
`Enhanced numeric functions
`
`Oracle and Standard SQL B-11
`
`Cloudera Exhibit 1020 - Page 1701 of 1808
`
`Databricks R2 PA 00003837
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 23 of 129 PageID #:
`4416
`
`ANSI Standards
`
`The optional features of SQL/Foundation:2003 that Oracle partially supports are
`listed in Table B- 6:
`
`Table B-6 Partially Supported Optional Features of SQUFoundation:2003
`
`Feature ID, Feature
`
`Partial Support
`
`B031, Basic dynamic SQL Oracle supports this, with the following restrictions:
`■ Oracle supports a subset of the descriptor items.
`For <input using clause>, Oracle only supports <using
`input descriptor>.
`For <output using clause>, Oracle only supports <into
`descriptor>.
`■ Dynamic parameters are indicated by a colon followed by
`an identifier rather than a question mark.
`
`■
`
`■
`
`B032, Extended dynamic
`SQL
`
`Oracle only implements the ability to declare global statements
`and global cursors from this feature; the rest of the feature is
`not supported.
`
`F052, Intervals and
`datetime arithmetic
`
`Oracle only supports the INTERVAL YEAR TO MONTH and
`INTERVAL DAY TO SECOND data types.
`
`Flll, Isolations levels
`other than
`SERIALIZABLE
`
`In addition to SERIALIZABLE, Oracle supports the READ
`COMMITTED isolation level.
`
`F191, Referential delete
`actions
`
`Oracle supports ON DELETE CASCADE and ON DELETE SET
`NULL.
`
`F302, INTERSECT table
`operator
`
`F312, MERGE statement
`
`Oracle supports INTERSECT but not INTERSECT ALL.
`
`Oracle's MERGE statement is almost the same as the standard,
`with these exceptions:
`■ Oracle does not support the optional AS keyword before a
`table alias
`■ Oracle does not support the <override clause>
`
`F391, Long identifiers
`
`Oracle supports identifiers up to 30 characters in length.
`
`F 401, Extended joined
`table
`
`Oracle supports FULL outer joins.
`
`F531, Temporary tables
`
`Oracle supports GLOBAL TEMPORARY tables.
`
`B-12 SQL Reference
`
`Cloudera Exhibit 1020 - Page 1702 of 1808
`
`Databricks R2 PA 00003838
`-
`-
`-
`
`
`
`Case 4:23-cv-01147-ALM Document 62-7 Filed 11/12/24 Page 24 of 129 PageID #:
`4417
`
`ANSI Standards
`
`Table B-6
`
`(Cont.) Partially Supported Optional Features of SQUFoundation:2003
`
`Feature ID, Feature
`
`Partial Support
`
`F591, Derived tables
`
`Oracle supports <derived table>, with the exception of:
`■ Oracle does not support the optional AS keyword before a
`table alias.
`■ Oracle does not support <derived