2 Application Development
Application Express
- Application Backups
- Dark Mode
- Export App as Zip
- Faceted Search
- Friendly URL Syntax
- Mega Menus
- Native PDF Printing
- New Data Upload
- New Form Region
- New Team Development
- Oracle JET Charts
- Popup List of Values (LOV)
- Redwood UI
- Remote Application Deployment
- REST Read / Write Enhancements
- Shared List of Values (LOV)
- SQL Workshop Now Supports Simple Oracle Document Access (SODA)
- Universal Theme Enhancements
Parent topic: Application Development
Application Backups
Oracle Application Express automatically backs up modified applications as a part of daily maintenance.
Related Topics
Parent topic: Application Express
Dark Mode
Decrease eye strain by enabling Dark Mode.
The development environment can now render with a darker color scheme, which reduces eye strain and is especially helpful for developing late into the night.
Related Topics
Parent topic: Application Express
Export App as Zip
You can now export your Application Express apps as a single zip file, which can facilitate integration with GIT / SVN and simplify incremental deployment. The zip file mirrors the directory structure of the APEXExport -split utility and splits your application, pages, and shared components into separate files for easy management.
Related Topics
Parent topic: Application Express
Faceted Search
Faceted search, or faceted navigation, provides an easy-to-use interface to narrow the results of a report and quickly locate specific data.
Like other declarative data-driven components in Application Express, you can create a faceted search page on an existing table, an arbitrary SQL query, an ORDS REST-Enabled SQL Service, or virtually any REST endpoint. Using an intelligent auto-discovery and scoring algorithm, recommended facets are automatically created based upon data distribution, related tables, column sizes, distinct values, average data length, and more. You can customize the recommended facets and easily add new facets using a robust set of declarative attributes.
Related Topics
Parent topic: Application Express
Friendly URL Syntax
Oracle Application Express application URL syntax has been simplified to support friendlier URLs at runtime. Friendly URLs features application or page numbers, and instead, uses the workspace path prefix, application and page aliases, and standard web parameter syntax for its URL structure.
The new syntax provides a Search Engine Optimization (SEO)-friendly URL structure which is far easier to understand and provides immediate context as to where you are within an app.
Related Topics
Parent topic: Application Express
Mega Menus
The Universal Theme now supports Mega Menu navigation. Mega Menu navigation renders app navigation as a collapsible floating panel that displays all navigation items at once. Mega Menu navigation is especially useful for displaying the various aspects of your app and enables direct access to app sections.
Mega Menu navigation includes a number of template options that enable you to customize the layout and appearance so it uniquely works for your app. You can extend Mega Menu items to include icons, descriptions, and even badges using custom list attributes. No matter the layout for larger screens, the mega menu gracefully adjusts its appearance to fit small screen devices. Mega Menus are fully accessible and keyboard friendly.
Related Topics
Parent topic: Application Express
Native PDF Printing
You can now print PDF files directly from interactive grids. This feature produces a PDF file which includes formatting options such as highlighting, column grouping, and column breaks. To make use of this feature, simply enable PDF as an additional download format in your region attributes.
Related Topics
Parent topic: Application Express
New Data Upload
The data upload functionality has been modernized to support native Excel, CSV, XML and JSON documents.
Data upload in SQL Workshop features a new drag and drop user interface that provides support for uploading native Excel, CSV, XML and JSON documents into a new table or into existing tables. These same capabilities can be accessed from the Create Application Wizard by selecting the From a File option.
Related Topics
Parent topic: Application Express
New Form Region
A new Form region type provides superior functionality compared to the old legacy form pages.
A new Form region type provides support for internal and external data sources (that is, Local Database, REST Enabled SQL Service, or Web Source). Forms can be created on SQL queries, or by creating PL/SQL Functions returning SQL Queries. In addition, this new Form region type supports more than two Primary Key Columns and includes more control on Lost Update detection and Row Locking. Finally, you can migrate existing legacy form pages to the new form region with the Upgrade Application function in App Builder Utilities.
Related Topics
Parent topic: Application Express
New Team Development
The Team Development application has been completely reimagined to provide a simple and easy way for your team to collaborate together.
Team Development provides a simple, conversational approach to team communication. Create an issue to track everything in a single place. You can classify issues using label groups and labels, create templates to provide users with starter text for issues and comments, and track progress by assigning milestones. Individual users can register their interest in specific issues and define at a general level what attributes they are interested in watching. Users can also choose whether they wish to be notified in the application, by email, or both.
Related Topics
Parent topic: Application Express
Oracle JET Charts
With every release, Oracle Application Express upgrades Oracle JET Charts. Oracle Application Express release 20.1 includes JavaScript Extension Toolkit (JET) 8.3.0.
Related Topics
Parent topic: Application Express
Popup List of Values (LOV)
Oracle Application Express introduces the completely redesigned Popup List of Values (LOV) which now supports multiple display columns, multiple return values, search-as-you-type, improved multiple value selection, and an all-new simplified user interface.
Parent topic: Application Express
Redwood UI
The Oracle Application Express user interface has been refreshed to align better with Redwood, Oracle's new user experience design language.
The new design and color scheme extends across the full developer experience and provides refreshing new visuals. The appearance of Application Express can now automatically switch between the dark and light appearance modes based on your OS or platform setting.
Parent topic: Application Express
Remote Application Deployment
Deploy an application to remote Oracle Application Express instances using REST Enabled SQL references.
One-click remote application deployment leverages the existing REST Enabled SQL references that works with a Oracle REST Data Services (ORDS) REST Enabled SQL Service.
Related Topics
Parent topic: Application Express
REST Read / Write Enhancements
Read and write data using REST Enabled SQL references or Web Source Modules.
Define a REST Enabled SQL reference once and use it across a workspace. Create Web Source Modules to define the source within each application. Both approaches are fully declarative, using Data Discovery with parameters. Forms and interactive grids now include built-in support for the internal or external data source you specify.
Related Topics
Parent topic: Application Express
Shared List of Values (LOV)
Shared List of Values (LOV) in Oracle Application Express include significant enhancements and new functionality. Shared LOVs now support the full set of data sources (table, SQL Query, function returning SQL query, ORDS REST-Enabled SQL Service and Web Source Modules), declarative column mappings, multiple display columns, grouping, embedded icons, and more.
Related Topics
Parent topic: Application Express
SQL Workshop Now Supports Simple Oracle Document Access (SODA)
SQL Workshop has now been extended to support Simple Oracle Document Access (SODA) collections. Create and store collections of documents in Oracle Database, retrieve them, and query them, without needing to know Structured Query Language (SQL) or how the documents are stored in the database. You can load data to a SODA collection as JSON, TXT, or ZIP files.
Related Topics
Parent topic: Application Express
Universal Theme Enhancements
The Universal Theme includes UI refinements, accessibility improvements, new template options, and Theme Roller enhancements.
Universal Theme contains many accessibility improvements including a new Skip to Main Content link. The Universal Theme also includes two additional styles for the tree-based Navigation Menu and a new Inline Popup region template. Finally, a number of components and styles have been visually tweaked and refined to provide a more streamlined user interface.
Related Topics
Parent topic: Application Express
Globalization
- Enhanced Parallel Execution Applicability
- New German Linguistic Sorts for Capital Sharp S Support
- New Era Support for Japanese Imperial Calendar
- Unicode 12.1 Support
- Near Zero Downtime
Parent topic: Application Development
Enhanced Parallel Execution Applicability
Parallel execution can now be used for abstract data types, character keys with linguistic sorts, and timestamp with time zone.
Broadening the applicability of parallel execution to non-native data types can increase the performance of applications using these data types.
Parent topic: Globalization
New German Linguistic Sorts for Capital Sharp S Support
Two new linguistic sorts (XGERMAN_S and XGERMAN_DIN_S) are added to Oracle Database to support Latin Capital Letter Sharp S as the uppercase form of Latin Smaller Letter Sharp S.
This feature expands the database linguistic support to meet the requirements of the German market.
Related Topics
Parent topic: Globalization
New Era Support for Japanese Imperial Calendar
The new Japanese era Reiwa, which went into effect on May 1, 2019, is now supported in Oracle Database for the Japanese Imperial Calendar.
The Japanese Imperial Calendar is used widely in Japan in addition to the Gregorian Calendar. Supporting the new era is an essential requirement for software distributed in the Japanese market.
Related Topics
Parent topic: Globalization
Unicode 12.1 Support
The National Language Support (NLS) data files for AL32UTF8 and AL16UTF16 character sets are updated to match version 12.1 of the Unicode Standard character database. The support for Unicode Collation Algorithm (UCA) is also updated to conform with UCA 12.1.
This enhancement enables Oracle Database to conform to the latest version of the Unicode Standard.
Related Topics
Parent topic: Globalization
Near Zero Downtime
Starting with Oracle Database 21c, you have the option of performing this method while the database is online or offline. The online version of this method requires one restart of the database at your convenience and requires minimal locks on tables that need to be upgraded. It allows applications to query all time zone data and to insert and modify time zone data for all tables that can be migrated online. The offline version of this method, which was also available in previous releases, requires the database to be in UPGRADE
mode during part of the procedure and is more restrictive about when applications can insert and modify time zone data.
Related Topics
Parent topic: Globalization
Java in Oracle Database
Parent topic: Application Development
Oracle JVM Security Enhancements
Oracle Java virtual machine (JVM) security has been enhanced to make it well suited for pluggable databases (PDBs). The enhancements also include support for the new Java module system and safeguarding of Oracle JVM against security vulnerabilities.
The enhanced Oracle JVM security makes it safe to use Oracle JVM with pluggable databases (PDB) and shields it from security vulnerabilities like the Spectre attack. In addition, it simplifies developing Java in the database applications using the new module system.
Related Topics
Parent topic: Java in Oracle Database
JDBC
- Java Library for Reactive Streams Ingestion
- JDBC DataSource for Sharded Databases Access
- JDBC Reactive Extensions
- JDBC Support for Native JSON Data Type
Parent topic: Application Development
Java Library for Reactive Streams Ingestion
This new Java library allows high-speed ingestion of data streams with non-blocking back pressure.
Java applications that use the provided APIs may continuously receive and ingest data from a large group of clients.
The ingestion process is non-blocking and extremely fast through the direct path load into the database tables. The library performs affinity grouping by destination including Oracle Real Application Clusters (RAC) nodes, Oracle Active Data Guard, and Sharded database. The library performs CPU optimization by decoupling record processing from database IO. Through the Universal Connection Pool (UCP), the ingestion process furnishes high availability and scalability.
This feature enables implementing high-speed ingestion of streaming data including sensors data, time series (trading), Call Detail Records (CDRs), geoSpatial activities, social media feeds, web site logs, and so on, with scalability and high availability.
Related Topics
Parent topic: JDBC
JDBC DataSource for Sharded Databases Access
You can use the new JDBC datasource to simplify the access of Java applications to sharded databases, where the applications can connect to the sharded databases transparently, with almost no change to the application code.
This feature enables Java connectivity to a sharded database without the need for a Java application to furnish a sharding key because the sharding data source derives the sharding key from the SQL statement. Your Java applications can scale out to sharded databases transparently as there is little to no change to the application code.
The sharding data source optimizes the performance of your applications as you do not need to configure the Universal Connection Pool (UCP) or create separate connection pools for cross-shard statements and single-shard statements. Also, you do not have to check-in or check-out a physical connection for every new sharding key because the sharding data source does it automatically.
Related Topics
Parent topic: JDBC
JDBC Reactive Extensions
The Reactive Extensions are a set of methods that extend the
JDBC standard to offer asynchronous database access with back
pressure support. The Reactive Extensions implement the Publisher
and Subscriber types defined by
java.util.concurrent.Flow
. Flow is the JDK's standard
representation of a reactive stream.
The Reactive Extensions use non-blocking mechanisms for creating Connections, executing SQL, fetching rows, committing, rolling back, closing Connections, and reading and writing BFILEs, BLOBs, and CLOBs.
The extensions bring scalability, high throughput, and Reactive Streams support to Java applications that use the Oracle Database in the Cloud and on-premises. This extension works as a Service Provider for the Reactive Streams libraries including: Reactor, RxJava, and Akka Streams.
Related Topics
Parent topic: JDBC
JDBC Support for Native JSON Data Type
This release introduces a new JSON datatype for efficient
storage of JSON data. The package oracle.sql.json
provides classes and interfaces for working with SQL JSON type
values.
This feature furnishes a simpler and richer type system (that is, support for dates, timestamps), no constraint check (IS JSON) and improves the performance of Java applications (that is, faster access to nested JSON values). A JSON parser inside the JDBC driver 21c allows optimizations during the conversion from Java String to native JSON and the other way around.
Related Topics
Parent topic: JDBC
JSON Document Store
- New JSON Data Type
- New Oracle SQL Function JSON_TRANSFORM
- SQL/JSON Syntax Improvements
- Multivalue Index for JSON
- Enhancements to View Creation and of Virtual Columns Addition
- JSON Scalar Allowed at Top Level of JSON Document (RFC 8259 Support)
- Compatibility for Old Clients With Binary JSON
Parent topic: Application Development
New JSON Data Type
JSON
is a new SQL and PL/SQL data type for JSON
data. It provides a substantial increase in query and update
performance.
The JSON data type is optimized for query and DML processing. It can yield significant database performance improvements for processing JSON data.
You can use the JSON data type in most places where a SQL data type is allowed, including:
- As the column type for table or view DDL
- With SQL/JSON functions and conditions, and with PL/SQL procedures and functions
- In Oracle dot-notation query syntax
- For creation of functional and search indexes
Oracle Call Interface (OCI) and Java Database Connectivity (JDBC) clients now provide APIs that can work directly with binary JSON data, significantly saving network costs and server CPU cycles.
Database In-Memory supports the ability to populate JSON data type columns in the In-Memory column store. JSON data defined with the JSON data type is populated in a proprietary binary format that is optimized for query processing and can significantly improve JSON processing performance.
Related Topics
Parent topic: JSON Document Store
New Oracle SQL Function JSON_TRANSFORM
You can use SQL function JSON_TRANSFORM
to update
parts of a JSON document. You specify which parts to modify, the
modifications, and any new values.
JSON_TRANSFORM
makes it easier for an application
to modify a JSON document, without having to parse and rebuild it.
In most cases, it also avoids a round-trip between the server and
client for the whole document.
Related Topics
Parent topic: JSON Document Store
SQL/JSON Syntax Improvements
You can now express more complex SQL/JSON queries and express some queries more succinctly.
- New SQL function JSON_SCALAR accepts a scalar instance of a SQL data type and returns a scalar JSON value as an instance of JSON data type.
- New JSON path-language item methods support
JSON_SCALAR
:float()
,double()
,binary()
,ymInterval()
, anddsInterval()
. - The JSON path-language and dot-notation syntax support new,
aggregate item
methods:
avg()
,count()
,minNumber()
,maxNumber()
,minString()
,maxString()
, andsum()
. - You can now express more complex SQL/JSON queries and express some queries more succinctly, and SQL/JSON path-expression syntax for array steps is improved.
Related Topics
Parent topic: JSON Document Store
Multivalue Index for JSON
A new create index syntax CREATE MULTIVALUE INDEX
allows you to create a functional index on arrays of strings or
numbers within a JSON type column. Each unique value within the
array will become a searchable index entry.
This avoids the need for full JSON scans to find values within
arrays in JSON columns, when searched using the
JSON_EXISTS
or JSON_QUERY
operators. It
provides similar benefits to conventional functional indexes when
searching JSON, but conventional functional indexes are limited to
a single indexed value per row.
Related Topics
Parent topic: JSON Document Store
Enhancements to View Creation and of Virtual Columns Addition
DBMS_JSON.CREATE_VIEW
now gives you the option to
create a materialized view instead of a standard view. It also
gives you the option to specify a particular path so the view can
be created on a subset of the data. Both CREATE_VIEW
and ADD_VIRTUAL_COLUMN
are enhanced to allow automatic
resolution of column naming conflicts, to provide a prefix to be
applied to column names, and to specify the case-sensitivity of
column names.
Enhances development flexibility and allows for materialized views, which may improve query performance with a trade-off against DML performance.
Related Topics
Parent topic: JSON Document Store
JSON Scalar Allowed at Top Level of JSON Document (RFC 8259 Support)
JSON documents in Oracle Database can now have a top-level JSON scalar value. Previously they had to have a JSON object or array value.
This feature helps Oracle JSON support be compliant with RFC 8259.
This feature will only be available when the database
initialization parameter compatible is set to 20
or
higher.
If the parameter value is at least 20
, then JSON
data that is stored either textually (VARCHAR2
,
CLOB
, BLOB
) or as JSON data type respects
RFC 8259: it allows top-level scalars in documents. For a JSON
column you can, however, use an IS JSON
check
constraint with keywords DISALLOW SCALARS
to disallow
documents having top-level scalar value.
Related Topics
Parent topic: JSON Document Store
Compatibility for Old Clients With Binary JSON
The database supports JSON in a binary format. In some situations, clients will work directly with the binary format. However, this requires that the client be a recent enough version to understand the format. The database will now identify older clients and automatically transform JSON data from binary to text (serialized) format before transmitting it to them, and convert back from text to binary format as required.
Support for older clients without being forced to upgrade.
Related Topics
Parent topic: JSON Document Store
Net Services
- Migration of Oracle CMAN Sessions with High Availability
- Oracle CMAN Traffic Director Mode Support for All Types of Database Links
- REST APIs for Oracle CMAN Administration, Proxy Protocol, Enhanced Rule List, and Bandwidth Management
- Reverse Connection Support Using CMAN Tunnels
Parent topic: Application Development
Migration of Oracle CMAN Sessions with High Availability
Client/server sessions can be migrated from one Oracle Connection Manager (CMAN) instance to another Oracle CMAN instance during a planned upgrade or while patching Oracle CMAN. Live sessions can be migrated with data in-transit.
Operations that are running either on a client or on a server continue to run seamlessly during the migration with zero downtime. You can also add new client connections during the migration.
Related Topics
Parent topic: Net Services
Oracle CMAN Traffic Director Mode Support for All Types of Database Links
Starting with this release, Oracle Connection Manager (CMAN) Traffic Director Mode is extended to support all types of dedicated database links including Fixed User, Connected User, and Current User.
Oracle Connection Manager in Traffic Director Mode enhances application scalability, performance, security, tenant isolation, and high availability (zero downtime during planned and unplanned database outages).
Related Topics
Parent topic: Net Services
REST APIs for Oracle CMAN Administration, Proxy Protocol, Enhanced Rule List, and Bandwidth Management
You can use REST APIs to manage Oracle Connection Manager (Oracle CMAN) instances. Proxy protocol provides additional security and access control. Enhanced rule list allows scalability with segregation of rule_lists for each service. You can also manage distribution of bandwidth across services using Oracle CMAN.
This feature offers REST API management, security with proxy protocol, scalability with enhanced rule list, and per service bandwidth management.
Related Topics
Parent topic: Net Services
Reverse Connection Support Using CMAN Tunnels
Starting with Oracle Database 21c, you can use secure tunnels to connect to an Oracle Database instance, which is inside a network that supports only outbound connections.
A network may allow only outbound connections and restrict inbound connections for security reasons. However, using the Oracle Connection Manager tunnel feature, you can connect to a database inside a network that allows only outbound connections. Oracle Connection Manager creates a pool of connections, known as tunnels, that can be used to connect to a database inside the network.
Related Topics
Parent topic: Net Services
Oracle Call Interface
- Improvements to OCI Data Interface for LOBs
- New C Client Interface APIs for JSON Data Type
- Oracle Call Interface API to Build and Quote TNS Connection Strings
- Oracle Call Interface Session Pool Improvements
- Oracle SODA for C and PL/SQL APIs Enhancements
- Support for C99 Syntax in Pro*C/C++ Precompiler
Parent topic: Application Development
Improvements to OCI Data Interface for LOBs
This feature makes the OCI Data Interface for LOBs more user friendly.
The OCI Data Interface for LOBs is efficient because it reduces the number of round trips between the client and the database. This feature is further improved by removing the need for NULL callbacks and usage of ‘ind’ variable when the LOB length exceeds the sb2 size.
Related Topics
Parent topic: Oracle Call Interface
New C Client Interface APIs for JSON Data Type
This feature introduces new Oracle Call Interface (OCI) APIs to operate with JSON descriptor. You can read and write textual JSON or binary JSON (in Oracle binary format) from/to a buffer or a stream. You can bind and define a JSON descriptor to write and read JSON data from the database.
With the new JSON APIs, you can now preserve abstraction without a need to serialize the data to text.
Related Topics
Parent topic: Oracle Call Interface
Oracle Call Interface API to Build and Quote TNS Connection Strings
A new Oracle Call Interface API can now be used to build and quote Oracle Database Transparent Network Substrate (TNS) connection strings.
The Oracle Call Interface enhancement enables validation of values, which you can use for Oracle Net Service connection string attributes.
Related Topics
Parent topic: Oracle Call Interface
Oracle Call Interface Session Pool Improvements
The Oracle Call Interface Session Pool has been enhanced.
Monitoring and administration has been improved.
When the number of sessions exceeds the minimum pool size, idle session cleanup now occurs even if there is no pool activity.
There is better OCISessionGet wait timeout accuracy.
When using Oracle Sharding, the pool has better balancing of session across shards.
You can now manage Oracle Call Interface Session Pool better with performance, auto-tuning, and administration improvements.
Related Topics
Parent topic: Oracle Call Interface
Oracle SODA for C and PL/SQL APIs Enhancements
This feature introduces new SODA APIs for saving documents to a collection, truncating a document collection, and specifying the array fetch size to read documents from a collection, which reduces network round-trips.
The enhancements improve interoperability of the SODA APIs with the database and utilities.
Related Topics
Parent topic: Oracle Call Interface
Support for C99 Syntax in Pro*C/C++ Precompiler
The Pro*C/C++ Precompiler now supports the C99 standard, the ISO/IEC 9899:1999 standards specification for C programming.
C99 syntax and semantics allow application developers to use richer functionality.
Related Topics
Parent topic: Oracle Call Interface
Oracle Data Provider for .NET (ODP.NET)
- Managed ODP.NET and ODP.NET Core: Bulk Copy
- Managed ODP.NET and ODP.NET Core: Debug Tracing Redaction
- Managed ODP.NET and ODP.NET Core: WebSocket and WebSocket Secure
Parent topic: Application Development
Managed ODP.NET and ODP.NET Core: Bulk Copy
ODP.NET Bulk Copy enables applications to efficiently load large amounts of data from a table in one database to another table in a different database. Managed ODP.NET and ODP.NET Core now support Bulk Copy and all its APIs.
ODP.NET Bulk Copy is the most optimized .NET solution when a large data set needs to loaded into a table or between database tables in different databases.
Related Topics
Parent topic: Oracle Data Provider for .NET (ODP.NET)
Managed ODP.NET and ODP.NET Core: Debug Tracing Redaction
Managed ODP.NET and ODP.NET Core has introduced a new trace level, that can exclude SQL statements and network packet contents from being included in the trace file.
Related Topics
Parent topic: Oracle Data Provider for .NET (ODP.NET)
Managed ODP.NET and ODP.NET Core: WebSocket and WebSocket Secure
Managed ODP.NET and ODP.NET Core now support both WebSocket and WebSocket Secure. Unmanaged ODP.NET already supports these protocols.
WebSocket has the ability to engage in two-way communication simultaneously using a single connection between web application and host unlike HyperText Transfer Protocol (HTTP). WebSocket Secure uses SSL/TLS to encrypt communications.
Related Topics
Parent topic: Oracle Data Provider for .NET (ODP.NET)
PL/SQL
- DBMS_CLOUD Package
- JavaScript Execution using DBMS_MLE
- New PL/SQL Iterator Constructs
- New Pragma SUPPRESSES_WARNING_6009
- PL/SQL Qualified Expressions Enhancements
- PL/SQL Support For New JSON SQL Data Type
- PL/SQL Type Attributes in User-Defined Types
Parent topic: Application Development
DBMS_CLOUD Package
Oracle provides two core mechanisms to work with data in object
stores, as part of the new DBMS_CLOUD
package or
manually defining external tables.
Using DBMS_CLOUD
provides benefits and additional
functionality that goes beyond DDL and is fully compatible with
Oracle Autonomous Database. Oracle strongly recommends leveraging
the new DBMS_CLOUD
package over manual external table
creation.
Related Topics
Parent topic: PL/SQL
JavaScript Execution using DBMS_MLE
The DBMS_MLE
package
allows users to execute JavaScript code inside the Oracle Database
and exchange data seamlessly between PL/SQL and JavaScript. The
JavaScript code itself can execute PL/SQL and SQL through built-in
JavaScript modules. JavaScript data types are automatically mapped
to Oracle Database data types and vice versa.
With the DBMS_MLE
package,
developers can write their data processing logic in JavaScript.
JavaScript is a widely-used and popular programming language that
can now also be used for writing programs that need to execute
close to the data.
Related Topics
Parent topic: PL/SQL
New PL/SQL Iterator Constructs
PL/SQL is enhanced to help you program iteration controls using new iterators in loops and in qualified expressions.
The new iterator constructs are clear, simple, understandable, and efficient.
Related Topics
Parent topic: PL/SQL
New Pragma SUPPRESSES_WARNING_6009
The SUPPRESSES_WARNING_6009
pragma allows more
robust error handling and better encapsulation and
modularization.
The PL/SQL compiler issues warning PLW-06009
if it
determines that an OTHERS
exception handler does not,
in all cases, end in either an explicit RAISE
statement or in a call to the PL/SQL supplied procedure
RAISE_APPLICATION_ERROR
. The compiler's behavior is
too aggressive for some programming styles when programmers supply
their own reporting subroutines. This new pragma
quiets the warning.
Related Topics
Parent topic: PL/SQL
PL/SQL Qualified Expressions Enhancements
Starting with this release, three new types of iterator choice association are added for use in qualified expressions. The basic iterator choice association extends the current iterator choice association by allowing a full iterator as the index. The index iterator choice association provides an index expression along with the value expression. The sequence iterator choice association allows a sequence of values to be added to the end of a collection. In each case, the expressions specified may reference the iterands.
Qualified expressions improve program clarity and programmer productivity.
Related Topics
Parent topic: PL/SQL
PL/SQL Support For New JSON SQL Data Type
You can use the new JSON SQL data type in PL/SQL.
The new JSON data type allows you to pass JSON data from SQL to PL/SQL and back to SQL (static and dynamic). PL/SQL now supports binding directly JSON data from client side interfaces, such as Oracle Call Interface (OCI) and Java Database Connectivity (JDBC), as well, as from PL/SQL to callouts. JSON can be a differentiating type in overload resolution.
Related Topics
Parent topic: PL/SQL
PL/SQL Type Attributes in User-Defined Types
You can use attributes of PL/SQL scalar data types, such as
BOOLEAN and PLS_INTEGER
, in non-persistable object
types.
You can use non-persistable object types in your PL/SQL code if you have no desire to persist instances of these types. This is useful when you are developing programs following Oracle's object oriented programming model.
Related Topics
Parent topic: PL/SQL
SQL
- Enhanced SQL Set Operators
- Expression Support for Initialization Parameters
- Placeholders in SQL DDL Statements
- SQL Macros
Parent topic: Application Development
Enhanced SQL Set Operators
The SQL set operators now support all keywords as defined in
ANSI SQL. The new operator EXCEPT [ALL]
is
functionally equivalent to MINUS [ALL]
. The operators
MINUS
and INTERSECT
now support the
keyword ALL.
Full ANSI compliance provides greater compatibility with other database vendors and makes migration to Oracle Database easier than before.
Related Topics
- Oracle® Database SQL Language Reference
- New Set Operators lab in the Database 21c New Features workshop in LiveLabs
Parent topic: SQL
Expression Support for Initialization Parameters
You can specify an expression when setting the value of an initialization parameter.
In previous releases, you were required to specify an absolute value when setting an initialization parameter. You can now specify an expression that takes into account the current system configuration and environment. This is especially useful in Oracle Autonomous Database environments.
Related Topics
- Oracle® Database Reference
- Expressions in Init Parameters lab in the Database 21c New Features workshop in LiveLabs
Parent topic: SQL
Placeholders in SQL DDL Statements
SQL DDL statements can now contain placeholders instead
of hard coded values for some content. For example,
placeholders may be used where a username or password
are required in a CREATE USER
statement.
Oracle Call Interface programs can substitute values into the DDL
statement placeholders before the statements are sent to Oracle
Database. This is similar to data binding, but occurs in Oracle
Client.
Application security is improved because values do not need to be hard coded in SQL DDL.
Related Topics
Parent topic: SQL
SQL Macros
You can create SQL Macros (SQM) to factor out common SQL expressions and
statements into reusable, parameterized constructs that can be used in other SQL statements.
SQL macros can either be scalar expressions, typically used in SELECT
lists,
WHERE
, GROUP BY
and HAVING
clauses, to
encapsulate calculations and business logic or can be table expressions, typically used in a
FROM
clause. SQL macros furthermore can improve performance as compared to
PL/SQL constructs.
SQL macros increase developer productivity, simplify collaborative development, and improve code quality.
Related Topics
- Oracle® Database PL/SQL Language Reference
- Using SQM Scalar and Table Expressions lab in the Database 21c New Features workshop in LiveLabs
Parent topic: SQL
Text
- Custom Range Bucketing in Result Set Interface
- Facet Navigation Support for JSON Search Indexes
- Improved Index Synchronization and Automatic Index Optimization
- In-Memory Full Text Columns
- JSON Support in Result Set Interface
- Named Entity Recognition Improvements
- New DIRECTORY_DATASTORE Data Store Type for Oracle Text
- New NETWORK_DATASTORE Data Store Type for Oracle Text
- New Oracle Text Index Type: Search Index
Parent topic: Application Development
Custom Range Bucketing in Result Set Interface
You can now specify range buckets for faceted navigation. For example, you can group all items costing between $10 and $20.
Range buckets increase the usability of faceted navigation and avoid the need to manually create range-value sections in the indexed table.
Related Topics
Parent topic: Text
Facet Navigation Support for JSON Search Indexes
JSON search indexing now supports facet navigation using a JSON result set.
Related Topics
Parent topic: Text
Improved Index Synchronization and Automatic Index Optimization
Index synchronization performance is considerably improved, particularly when lots of sessions are doing DML operations simultaneously with the sync-on-commit option. Optimize index now optimizes all index entries (including SDATA values) rather than just the word-based index entries.
Related Topics
Parent topic: Text
In-Memory Full Text Columns
In previous releases, queries using CONTAINS()
and
JSON_TEXTCONTAINS()
were only evaluated with a text
index and JSON search index. Oracle Text technology now supports an
INMEMORY TEXT
clause during table creation, enabling
fast in-memory searching rather than creating a separate on-disk
text index.
An in-memory table scan can now evaluate columns directly when
they are specified as INMEMORY TEXT
. Queries using
CONTAINS()
or JSON_TEXTCONTAINS()
can
evaluate these operators in SQL predicates without requiring
separate domain-specific indexes. When the In-Memory Column Store
contains both scalar and non-scalar columns, On-line Transaction
Processing (OLTP) applications that access both types of data can
avoid accessing the row store, thereby improving performance.
Related Topics
- Oracle® Database In-Memory Guide
- Searching Text/JSON in In-Memory lab in the Database 21c New Features workshop in LiveLabs
Parent topic: Text
JSON Support in Result Set Interface
The JSON Result Set Interface (RSI) enables you to perform queries in JSON and return results as JSON.
The RSI enables you to fetch a set of results (a "hitlist") together with summary data such as the total number of hits and facet navigation information. This feature provides easier integration with modern programming languages which support JSON.
Related Topics
Parent topic: Text
Named Entity Recognition Improvements
Some restrictions have been removed from Named Entity Recognition (previously called Entity Extraction). Entity definitions can now be nested.
You can now incorporate existing or user-defined rules into other rules. For example, you can define rule "percentage change" as one of several words (for example, 'climbed', 'dropped', 'rose', 'increased') followed by the built-in rule for percentage.
Related Topics
Parent topic: Text
New DIRECTORY_DATASTORE Data Store Type for Oracle Text
You can now use a new data store type called
DIRECTORY_DATASTORE
instead of the deprecated
FILE_DATASTORE
type.
DIRECTORY_DATASTORE
provides greater security
because it enables file access to be based on directory
objects.
Related Topics
Parent topic: Text
New NETWORK_DATASTORE Data Store Type for Oracle Text
You can now use a new data store type called
NETWORK_DATASTORE
instead of the deprecated
URL_DATASTORE
data type.
NETWORK_DATASTORE
provides greater security because
it enables URL access based on access control lists (ACLs), which
support HTTP
and HTTPS
protocols.
Related Topics
Parent topic: Text
New Oracle Text Index Type: Search Index
The search indexes for text columns support support sharding and all partition types. Index creation syntax is also simpler now.
The search index type maintains most of the features of the
traditional CONTEXT
index type, but has support for
sharding and for multiple partitioning methods (the previous
CONTEXT
index type can only support range
partitioning). It also has a simplified index creation syntax
avoiding the semantic complexity necessary for CONTEXT
indexes.
Related Topics
Parent topic: Text