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