|
1 | | - |
2 | | -# SQL Oracle Database 23ai |
| 1 | +# Oracle 23ai |
3 | 2 | This section covers the new features introduced in the Oracle Database 23ai release, focusing on enhancements and functionalities in SQL for application development. |
4 | | -This asset contains a brief set of Oracle Database 23ai new features examples which are then included in a specific asset file for consultation. |
5 | | -The list of New Features will be periodically updated and adjusted. |
6 | | - |
7 | | -## Features |
8 | | - |
9 | | -### Aggregation over INTERVAL Data Types |
10 | | -- **Description**: Pass INTERVAL data types to SUM and AVG aggregate functions. |
11 | | -- **Example**: ```sqlSELECT SUM(interval_column) FROM table_name;` |
12 | | - |
13 | | -### Client Describe Call Support for Tag Options |
14 | | -- **Description**: Store and retrieve metadata about database objects using annotations. |
15 | | -- **Example**: `ALTER TABLE table_name ANNOTATE 'key' = 'value';` |
16 | | - |
17 | | -### DEFAULT ON NULL for UPDATE Statements |
18 | | -- **Description**: Define columns as DEFAULT ON NULL for update operations. |
19 | | -- **Example**: `UPDATE table_name SET column_name = DEFAULT ON NULL WHERE condition;` |
20 | | - |
21 | | -### Data Quality Operators |
22 | | -- **Description**: Introduces PHONIC_ENCODE and FUZZY_MATCH operators for string matching. |
23 | | -- **Example**: `SELECT PHONIC_ENCODE('word'), FUZZY_MATCH('string1', 'string2') FROM dual;` |
24 | | - |
25 | | -### Data Use Case Domains |
26 | | -- **Description**: Define and apply constraints for common values like credit card numbers. |
27 | | -- **Example**: `CREATE DOMAIN email_domain AS VARCHAR2(255) CHECK (REGEXP_LIKE(value, '^[\w._%+-]+@[\w.-]+\.[a-zA-Z]{2,}$'));` |
28 | | - |
29 | | -### Direct Joins for UPDATE and DELETE Statements |
30 | | -- **Description**: Join target tables in UPDATE and DELETE statements using the FROM clause. |
31 | | -- **Example**: `UPDATE table1 SET column1 = table2.column2 FROM table2 WHERE table1.id = table2.id;` |
32 | | - |
33 | | -### GROUP BY Column Alias or Position |
34 | | -- **Description**: Use column aliases or SELECT item positions in GROUP BY clauses. |
35 | | -- **Example**: `SELECT column1 AS col1, SUM(column2) FROM table_name GROUP BY col1;` |
36 | | - |
37 | | -### IF [NOT] EXISTS Syntax Support |
38 | | -- **Description**: Support for IF EXISTS and IF NOT EXISTS syntax in DDL operations. |
39 | | -- **Example**: `CREATE TABLE IF NOT EXISTS table_name (column1 datatype);` |
40 | | - |
41 | | -### New Database Role for Application Developers |
42 | | -- **Description**: Introduces DB_DEVELOPER_ROLE with necessary privileges for developers. |
43 | | -- **Example**: `GRANT DB_DEVELOPER_ROLE TO user_name;` |
44 | | - |
45 | | -### Oracle SQL Access to Kafka |
46 | | -- **Description**: Efficient access to data streams from Apache Kafka and OCI Streaming Service. |
47 | | -- **Example**: `SELECT * FROM kafka_table WHERE topic = 'topic_name';` |
48 | | - |
49 | | -### SELECT Without FROM Clause |
50 | | -- **Description**: Run SELECT expression-only queries without a FROM clause. |
51 | | -- **Example**: `SELECT 1+1;` |
52 | | - |
53 | | -### SQL BOOLEAN Data Type |
54 | | -- **Description**: Supports ISO SQL standard-compliant BOOLEAN data type. |
55 | | -- **Example**: `CREATE TABLE table_name (column1 BOOLEAN);` |
56 | | - |
57 | | -### SQL UPDATE RETURN Clause Enhancements |
58 | | -- **Description**: Enhanced RETURNING INTO clause for reporting old and new values. |
59 | | -- **Example**: `UPDATE table_name SET column1 = 'new_value' RETURNING column1 INTO :old_value;` |
60 | | - |
61 | | -### Schema Annotations |
62 | | -- **Description**: Store and retrieve metadata about database objects using name-value pairs. |
63 | | -- **Example**: `ANNOTATE SCHEMA 'key' = 'value';` |
64 | | - |
65 | | -### Table Value Constructor |
66 | | -- **Description**: Supports VALUES clause for SELECT, INSERT, and MERGE statements. |
67 | | -- **Example**: `INSERT INTO table_name VALUES (1, 'value');` |
68 | | - |
69 | | -### Ubiquitous Search With DBMS_SEARCH Packages |
70 | | -- **Description**: Index multiple schema objects for full-text search using DBMS_SEARCH. |
71 | | -- **Example**: `EXEC DBMS_SEARCH.CREATE_INDEX('index_name', 'table_name');` |
72 | 3 |
|
73 | 4 | Reviewed: 18.11.2024 |
74 | 5 |
|
75 | | -# Table of Contents |
76 | | - |
77 | | -1. [Team Publications](#team-publications) |
78 | | -2. [Useful Links](#useful-links) |
79 | | - |
80 | | -# Team Publications |
81 | | -- [23ai New Features Series - Part 1](https://www.linkedin.com/posts/sonnemeyer_23aispecialists-23ainewsabrpart1-developer-activity-7196221427056889856-3HF2?utm_source=share&utm_medium=member_desktop) |
82 | | -- [23ai New Features Series - Part 2](https://www.linkedin.com/posts/cristina-varas-menadas-591825119_oracle-oracle23ai-sql-activity-7198945654272864256-wduQ/?utm_source=share&utm_medium=member_ios) |
83 | | -- [23ai New Features Series - Part 3](https://www.linkedin.com/posts/sonnemeyer_23aispecialists-23ainewsabrpart3-developer-activity-7201958687005982721-Oo3B?utm_source=share&utm_medium=member_desktop) |
84 | | -- [23ai New Features Series - Part 4](https://www.linkedin.com/posts/sonnemeyer_23aispecialists-23ainewsabrpart4-teammates-activity-7204946957843267584-x664?utm_source=share&utm_medium=member_desktop) |
85 | | -- [23ai New Features Series - Part 5](https://www.linkedin.com/posts/ppaolucci_cristinavarasmenadas-sonjameyer-activity-7207374755878887425-a--C?utm_source=share&utm_medium=member_desktop) |
86 | | - |
87 | | -# Useful Links |
88 | | -- [Oracle Database 23ai New Features](https://apex.oracle.com/database-features/) |
| 6 | +# When to use this asset? |
| 7 | +To look for examples and deep dive into Oracle 23ai New Features in Database specific areas for Developers. |
89 | 8 |
|
90 | | -# Release Information |
91 | | -- **Version**: 23ai |
92 | | -- **Applicable Offerings**: All Oracle Database offerings |
93 | | - |
94 | | -For more detailed information, please visit the [Oracle Database Features](https://apex.oracle.com/database-features/) page. |
| 9 | +# How to use this asset? |
| 10 | +This asset contains a brief set of Oracle Database 23ai new features examples which are then included in a specific asset file for consultation. |
| 11 | +The list of New Features will be periodically updated and adjusted. |
| 12 | +<!-- --## Features |
| 13 | +--### Aggregation over INTERVAL Data Types |
| 14 | +-- - **Description**: Pass INTERVAL data types to SUM and AVG aggregate functions. |
| 15 | +-- - **Example**: ```sqlSELECT SUM(interval_column) FROM table_name;` |
| 16 | +--### Client Describe Call Support for Tag Options |
| 17 | +-- - **Description**: Store and retrieve metadata about database objects using annotations. |
| 18 | +-- - **Example**: `ALTER TABLE table_name ANNOTATE 'key' = 'value';` |
| 19 | +--### DEFAULT ON NULL for UPDATE Statements |
| 20 | +-- - **Description**: Define columns as DEFAULT ON NULL for update operations. |
| 21 | +-- - **Example**: `UPDATE table_name SET column_name = DEFAULT ON NULL WHERE condition;` |
| 22 | +--### Data Quality Operators |
| 23 | +-- - **Description**: Introduces PHONIC_ENCODE and FUZZY_MATCH operators for string matching. |
| 24 | +-- - **Example**: `SELECT PHONIC_ENCODE('word'), FUZZY_MATCH('string1', 'string2') FROM dual;` |
| 25 | +--### Data Use Case Domains |
| 26 | +-- - **Description**: Define and apply constraints for common values like credit card numbers. |
| 27 | +-- - **Example**: `CREATE DOMAIN email_domain AS VARCHAR2(255) CHECK (REGEXP_LIKE(value, '^[\w._%+-]+@[\w.-]+\.[a-zA-Z]{2,}$'));` |
| 28 | +-- ### Direct Joins for UPDATE and DELETE Statements |
| 29 | +-- - **Description**: Join target tables in UPDATE and DELETE statements using the FROM clause. |
| 30 | +-- - **Example**: `UPDATE table1 SET column1 = table2.column2 FROM table2 WHERE table1.id = table2.id;` |
| 31 | +-- ### GROUP BY Column Alias or Position |
| 32 | +-- - **Description**: Use column aliases or SELECT item positions in GROUP BY clauses. |
| 33 | +-- - **Example**: `SELECT column1 AS col1, SUM(column2) FROM table_name GROUP BY col1;` |
| 34 | +-- ### IF [NOT] EXISTS Syntax Support |
| 35 | +-- - **Description**: Support for IF EXISTS and IF NOT EXISTS syntax in DDL operations. |
| 36 | +-- - **Example**: `CREATE TABLE IF NOT EXISTS table_name (column1 datatype);` |
| 37 | +-- ### New Database Role for Application Developers |
| 38 | +-- - **Description**: Introduces DB_DEVELOPER_ROLE with necessary privileges for developers. |
| 39 | +-- - **Example**: `GRANT DB_DEVELOPER_ROLE TO user_name;` |
| 40 | +-- ### Oracle SQL Access to Kafka |
| 41 | +-- - **Description**: Efficient access to data streams from Apache Kafka and OCI Streaming Service. |
| 42 | +-- - **Example**: `SELECT * FROM kafka_table WHERE topic = 'topic_name';` |
| 43 | +-- ### SELECT Without FROM Clause |
| 44 | +-- - **Description**: Run SELECT expression-only queries without a FROM clause. |
| 45 | +-- - **Example**: `SELECT 1+1;` |
| 46 | +-- ### SQL BOOLEAN Data Type |
| 47 | +-- - **Description**: Supports ISO SQL standard-compliant BOOLEAN data type. |
| 48 | +-- - **Example**: `CREATE TABLE table_name (column1 BOOLEAN);` |
| 49 | +-- ### SQL UPDATE RETURN Clause Enhancements |
| 50 | +-- - **Description**: Enhanced RETURNING INTO clause for reporting old and new values. |
| 51 | +-- - **Example**: `UPDATE table_name SET column1 = 'new_value' RETURNING column1 INTO :old_value;` |
| 52 | +-- ### Schema Annotations |
| 53 | +-- - **Description**: Store and retrieve metadata about database objects using name-value pairs. |
| 54 | +-- - **Example**: `ANNOTATE SCHEMA 'key' = 'value';` |
| 55 | +-- ### Table Value Constructor |
| 56 | +-- - **Description**: Supports VALUES clause for SELECT, INSERT, and MERGE statements. |
| 57 | +-- - **Example**: `INSERT INTO table_name VALUES (1, 'value');` |
| 58 | +-- ### Ubiquitous Search With DBMS_SEARCH Packages |
| 59 | +-- - **Description**: Index multiple schema objects for full-text search using DBMS_SEARCH. |
| 60 | +-- - **Example**: `EXEC DBMS_SEARCH.CREATE_INDEX('index_name', 'table_name');--> |
95 | 61 |
|
96 | 62 | # License |
97 | | - |
98 | 63 | Copyright (c) 2024 Oracle and/or its affiliates. |
99 | | - |
100 | 64 | Licensed under the Universal Permissive License (UPL), Version 1.0. |
101 | | - |
102 | | -See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details. |
103 | | - |
104 | | - |
105 | | - |
106 | | - |
| 65 | +See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details. |
0 commit comments