On this page: Target audience: CAST Administrators |
Summary: this page provides detailed information about CAST's support for the Oracle Server technology. |
Language Version | Supported | Supported by reference | Deprecated | Comments |
---|---|---|---|---|
Oracle 8i (8.1.6.x, 8.1.7.x) | Please note that the extraction of schemas on Oracle 8i via the CAST Delivery Manager Tool and via the standalone CAST Database Extractor is now unsupported. However, it is still possible to analyze Oracle 8i if you have output from an older version of the standalone CAST Database Extractor. | |||
Oracle 9i R1 (9.0.1.1.x) | ||||
Oracle 9i R2 (9.2.0.1.x) | ||||
Oracle 10g R1 (10.1.0.x) with x ≥ 2 | ||||
Oracle 10g R2 (10.2.0.x) with x ≥ 2 | ||||
Oracle 11g R1 (11.1.0.6 - 11.1.0.7) | ||||
Oracle 11g R2 (11.2) | ||||
Oracle 12c R1 (12.1) | Supported with limitations: New syntax introduced in Oracle 12c is not supported. |
To successfully deliver and analyze Oracle Server PL/SQL code, the following third-party software is required:
Install on workstation running the DMT (for extraction) | Install on workstation running CMS (for analysis) |
---|---|
Nothing required All that is required is network access to the live database/schema to be packaged. | Nothing required |
The CAST SQL Analyzer (used to analyze PL/SQL and T-SQL) is an "offline" analyzer, therefore, no live connection to the RDBMS is required during the analysis in the CAST Management Studio. Instead, the target schemas/databases are packaged by the CAST Delivery Manager Tool via a JDBC connection into files that can be analyzed by the CAST SQL Analyzer. |
Please ensure that you use the Service option (rather than the SID option) when configuring the CAST Delivery Manager Tool connection parameters to a schema hosted in a pluggable database.
The following section lists the objects and links between objects that the SQL Analyzer is capable of detecting and storing in the CAST Analysis Service:
Collection Nested Table Type | |
Collection Varray | |
Cursor | |
Database Link | |
Function | |
Function (Private) | |
Instance | |
Index, Foreign Key Constraint, Primary Key Constraint, Check Constraint and Unique Key Constraint | |
Object Type (Incomplete, Body and Header) | |
Package Body | |
Package Header | |
Procedure | |
Procedure (Private) | |
Schema | |
Schema (Unknown) | |
Sequence | |
Synonym (Public/Private) | |
Table | |
Table Column | |
Trigger | |
View (Normal and Materialized) | |
View Column |
Object properties that are supported by the current release of the SQL Analyzer are described in the attached Excel file:
Links detected by the SQL Analyzer are listed in the attached Excel file:
This section provides more detail about the support for specific Oracle Server syntax and the way in which CAST handles them.
The following syntax introduced in Oracle 11g R1 is supported (other new syntax is not supported):
The OPEN FOR statement for CURSORS (available since version 10G) is not supported.
Conditional compilation directives (i.e. directives starting with $$ or $, such as $$PLSQL_UNIT, $if, $else, $end etc.) are ignored during an analysis and therefore syntax errors do occur, and the object (function, procedure, trigger,..) is not saved in the CAST Analysis Service.
"Public DB links" are extracted and saved in the Analysis Service, but remote object resolution is not performed by a standard analysis. For instance, a PL/SQL procedure using a remote table through a DB Link on a remote Oracle instance, will have a missing link to this table. A custom workaround is possible that will create this missing link in some situations. Please contact CAST Support for more information.
Note that this limitation does not apply to CAST AIP ≥ 8.3.5 where superfluous parentheses are now supported. |
A syntax error is reported by the analyzer when analyzing syntactically correct code containing superfluous parentheses. A superfluous parenthesis is a parenthesis that can be omitted without changing the result of the query. The following cases have been identified causing the issue:
Case 1: SELECT statement between parentheses followed by another SELECT statement between parentheses:
... ... AS ( SELECT ... ) ( <==== Causing syntax error SELECT ... ) |
Case 2: FROM clause containing an ORDER BY clause or a WITH clause followed by parentheses:
... FROM ( ( ... ) ORDER BY ) <==== Causing syntax error |
or:
... FROM ( ( ... WITH ... ) ) <==== Causing syntax error |
The following section lists technical and functional aspects with regard to analysis of Oracle Server source code:
Wrapping is the Oracle process of hiding PL/SQL source code. The CAST Database Extractor (either embedded in the CAST Delivery Manager Tool or standalone) cannot access the wrapped item's source code, and instead generates a generic body for these objects. These objects can be analyzed by the CAST PL/SQL Analyzer, but with limitations:
As wrapped objects have no fan-out, they will have no direct or indirect link to End Points and Data Functions. Therefore, you may consider them as Transaction End Points
Please note that currently inter-Application links (i.e. links between source code in separate Applications) between the following combinations of technologies is not supported:
If you do require link resolution, then all Analysis Units must belong to the same Application.
The analyzer does not analyze objects that are marked as invalid in the Oracle Server system catalogue. Invalid objects are still visible in CAST Enlighten (with the property "Object is invalid") but no links will be created from or to these objects. An entry in the analysis log will be created as follows:
Object <object name> is found as invalid - Please check your code and eventually recompile it. |
When the word "LOG" is used as an alias, the SQL analyzer will raise a syntax error during the attempted analysis of the object. The object that contains the alias will not be analyzed once the syntax error has been raised. To workaround this issue, edit the object and replace the alias "LOG" with another alias name.
The functionality known in previous releases of CAST AIP as the Fine Grain Impact Analysis (FGIA) for participating Oracle schemas is no longer available (and has not been since CAST AIP 7.2.x). There is no workaround for this feature.