Oracle® TimesTen In-Memory Database PL/SQL Developer's Guide Release 11.2.1 Part Number E13076-02 |
|
|
View PDF |
Oracle TimesTen In-Memory Database supplies a number of PL/SQL packages, listed immediately below, to extend database functionality and provide PL/SQL access to SQL features. TimesTen installs these packages automatically for your use.
This chapter lists and briefly describes the subprograms that comprise each package. For detailed information on these PL/SQL packages, refer to Oracle Database PL/SQL Packages and Types Reference (other than for TT_DB_VERSION, which is TimesTen-specific and is detailed here).
The packages STANDARD, DBMS_STANDARD, and PLITBLM are not documented here. Subprograms belonging to these packages are part of the PL/SQL language.
All users have EXECUTE privilege for packages described in this chapter, other than for UTL_RECOMP as noted in that section.
The DBMS_LOCK package provides an interface to lock-management services. In the current release, TimesTen supports only the sleep feature.
Table 9-1 describes the supported DBMS_LOCK subprogram.
Table 9-1 DBMS_OUTPUT Subprograms
Subprogram | Description |
---|---|
SLEEP procedure |
This procedure suspends the session for a given period of time. Specify the amount of time in seconds. The smallest supported increment is a hundredth of a second. For example: DBMS_LOCK.SLEEP(1.95); Notes:
|
The DBMS_OUTPUT package enables you to send messages from stored procedures and packages. The package is useful for displaying PL/SQL debugging information.
Table 9-2 describes the DBMS_OUTPUT subprograms.
Table 9-2 DBMS_OUTPUT Subprograms
Subprogram | Description |
---|---|
DISABLE procedure |
Disables message output. |
ENABLE procedure |
Enables message output. |
GET_LINE procedure |
Retrieves one line from the buffer. |
GET_LINES procedure |
Retrieves an array of lines from the buffer. |
NEW_LINE procedure |
Terminates a line created with PUT. |
PUT procedure |
Places a line in the buffer. |
PUT_LINE procedure |
Places a partial line in the buffer. |
The DBMS_PREPROCESSOR package provides an interface to print or retrieve the source text of a PL/SQL unit after processing of conditional compilation directives.
Table 9-3 describes the DBMS_PREPROCESSOR subprograms.
The DBMS_RANDOM package provides a built-in random number generator.
Table 9-4 describes the DBMS_RANDOM subprograms.
Table 9-4 DBMS_RANDOM Subprograms
Subprogram | Description |
---|---|
INITIALIZE procedure |
Initializes the package with a seed value. |
NORMAL function |
Returns random numbers in a normal distribution. |
RANDOM procedure |
Generates a random number. |
SEED procedure |
Resets the seed. |
STRING function |
Gets a random string. |
TERMINATE procedure |
Terminates the package. |
VALUE function |
The VALUE function gets a random number, greater than or equal to 0 and less than 1, with 38 digits to the right of the decimal point (38-digit precision). The overload function gets a random NUMBER |
The DBMS_SQL package provides an interface for using dynamic SQL to parse data manipulation language (DML) or data definition language (DDL) statements using PL/SQL.
The DBMS_SQL package does not support pre-defined data types and overloads with data types that are not supported in TimesTen, such as LOBs, UROWID, time zone features, ADT, database-level collections, and edition overloads. For more information on the supported data types in TimesTen PL/SQL, see "Understanding the data type environments".
Table 9-5 describes the DBMS_SQL subprograms.
Table 9-5 DBMS_SQL Subprograms
Subprogram | Description |
---|---|
BIND_ARRAY procedure |
Binds a given value to a given collection. |
BIND_VARIABLE procedure |
Binds a given value to a given variable. |
CLOSE_CURSOR procedure |
Closes a given cursor and frees memory. |
COLUMN_VALUE procedure |
Returns the value of the cursor element for a given position in a cursor. |
COLUMN_VALUE_LONG procedure |
Returns a selected part of a LONG column that has been defined using DEFINE_COLUMN_LONG. |
DEFINE_ARRAY procedure |
Defines a collection to be selected from the given cursor. Use with SELECT statements. |
DEFINE_COLUMN procedure |
Defines a column to be selected from the given cursor. Use with SELECT statements. |
DEFINE_COLUMN_LONG procedure |
Defines a LONG column to be selected from the given cursor. Use with SELECT statements. |
DESCRIBE_COLUMNS procedure |
Describes the columns for a cursor opened and parsed through the DBMS_SQL package. |
DESCRIBE_COLUMNS2 procedure |
Describes the specified column. Use as an alternative to DESCRIBE_COLUMNS procedure. |
DESCRIBE_COLUMNS3 procedure |
Describes the specified column. Use as an alternative to DESCRIBE_COLUMNS procedure. |
EXECUTE function |
Executes a given cursor. |
EXECUTE_AND_FETCH function |
Executes a given cursor and fetches rows. |
FETCH_ROWS function |
Fetches a row from a given cursor. |
IS_OPEN function |
Returns TRUE if a given cursor is open. |
LAST_ERROR_POSITION function |
Returns the byte offset in the SQL statement text where the error occurred. |
LAST_ROW_COUNT function |
Returns cumulative count of the number of rows fetched. |
LAST_ROW_ID function |
TimesTen does not support ROWID of the last row operated on by a DML statement. This function returns NULL. |
LAST_SQL_FUNCTION_CODE function |
Returns the SQL function code for the statement. |
OPEN_CURSOR function |
Returns the cursor ID number of a new cursor. |
PARSE procedures |
Parses a given statement. |
TO_CURSOR_NUMBER function |
Takes an opened (by OPEN) strongly or weakly-typed REF CURSOR, and transforms it into a DBMS_SQL cursor number. |
TO_REFCURSOR function |
Takes an opened, parsed, and executed cursor (by the OPEN, PARSE, and EXECUTE subprograms), and transforms or migrates it into a PL/SQL manageable REF CURSOR (a weakly typed cursor) that can be consumed by PL/SQL native dynamic SQL and switched to use native dynamic SQL. |
VARIABLE_VALUE procedures |
Returns value of a named variable for a given cursor. |
The DBMS_UTILITY package provides a variety of utility subprograms.
Subprograms are not supported (and not listed here) for features that TimesTen does not support.
Table 9-6 describes DBMS_UTILITY subprograms.
Table 9-6 DBMS_UTILITY Subprograms
Subprogram | Description |
---|---|
CANONICALIZE procedure |
Canonicalizes a given string. |
COMMA_TO_TABLE procedure |
Converts a comma-delimited list of names into an associative array (index-by table) of names. |
Compiles all procedures, functions, packages, and views in the specified database. |
|
DB_VERSION procedure |
Returns version information for the TimesTen database. The procedure returns NULL for the compatibility setting because TimesTen does not support the system parameter |
FORMAT_CALL_STACK function |
Formats the current call stack. |
FORMAT_ERROR_BACKTRACE function |
Formats the backtrace from the point of the current error to the exception handler where the error is caught. |
FORMAT_ERROR_STACK function |
Formats the current error stack. |
GET_CPU_TIME function |
Returns the current CPU time in hundredths of a second. |
GET_DEPENDENCY procedure |
Shows the dependencies on the objects passed in. |
GET_ENDIANNESS function |
Returns the endianness of your database platform. |
GET_HASH_VALUE function |
Computes a hash value for a given string. |
GET_SQL_HASH function |
Computes the hash value for a given string using the MD5 algorithm. |
GET_TIME function |
Returns the current time in hundredths of a second. |
Invalidates a database object and optionally modifies the PL/SQL compiler parameter settings for the object. |
|
IS_BIT_SET function |
Returns bit setting. |
NAME_RESOLVE procedure |
Resolves the given name of the form: [[a.]b.]c[@d] Where Do not use |
NAME_TOKENIZE procedure |
Calls the parser to parse the given name: "a [.b [.c ]][@dblink]" Strips double quotes or converts to uppercase if there are no quotes. Ignores comments and does not perform semantic analysis. Missing values are NULL. Do not use |
TABLE_TO_COMMA procedures |
Converts an associative array (index-by table) of names into a comma-delimited list of names. |
VALIDATE procedure |
Validates the object described by either owner, name and namespace or object ID. |
The TT_DB_VERSION package is a TimesTen-specific package that provides the version number and release number for the Oracle TimesTen In-Memory Database.
Table 9-7 describes the TT_DB_VERSION constants.
The primary use case for the TT_DB_VERSION and UTL_IDENT packages is for conditional compilation. See "UTL_IDENT" for an example.
Table 9-7 TT_DB_VERSION Constants
Name | Description |
---|---|
VERSION |
Equals the major release number of the Oracle TimesTen In-Memory Database. VERSION is of type PLS_INTEGER. For example, for the Oracle TimesTen In-Memory Database, Release 11.2.1.0, TT_DB_VERSION.VERSION equals 1121. |
RELEASE |
Equals the minor release number of the Oracle TimesTen In-Memory Database product. RELEASE is of type PLS_INTEGER. For example, for the Oracle TimesTen In-Memory Database, Release 11.2.1.0, TT_DB_VERSION.RELEASE equals 0. |
The UTL_FILE package enables PL/SQL programs the ability to read and write operating system text files.
In the current release, this package is restricted to access of a pre-defined temporary directory only. Refer to the Oracle TimesTen In-Memory Database Release Notes for details.
Table 9-8 describes the UTL_FILE subprograms.
Table 9-8 UTL_FILE Subprograms
Subprogram | Description |
---|---|
FCLOSE procedure |
Closes a file. |
FCLOSE_ALL procedure |
Closes all file handles. |
FCOPY procedure |
Copies a contiguous portion of a file to a newly created file. |
FFLUSH procedure |
Physically writes all pending output to a file. |
FGETATTR procedure |
Reads and returns the attributes of a disk file. |
FGETPOS procedure |
Returns the current relative offset position (in bytes) within a file. |
FOPEN function |
Opens a file for input or output. |
FOPEN_NCHAR function |
Opens a file in Unicode for input or output. |
FREMOVE procedure |
With sufficient privilege, deletes a disk file. |
FRENAME procedure |
Renames an existing file to a new name (similar to the UNIX |
FSEEK procedure |
Adjusts the file pointer forward or backward within the file by the number of bytes specified. |
GET_LINE procedure |
Reads text from an open file. |
GET_LINE_NCHAR procedure |
Reads text in Unicode from an open file. |
GET_RAW function |
Reads a RAW string value from a file and adjusts the file pointer ahead by the number of bytes read. |
IS_OPEN function |
Determines if a file handle refers to an open file. |
NEW_LINE procedure |
Writes one or more operating- system-specific line terminators to a file. |
PUT procedure |
Writes a string to a file. |
PUT_LINE procedure |
Writes a line to a file and appends an operating-system-specific line terminator. |
PUT_LINE_NCHAR procedure |
Writes a Unicode line to a file. |
PUT_NCHAR procedure |
Writes a Unicode string to a file. |
PUT_RAW function |
Accepts as input a RAW data value and writes the value to the output buffer. |
PUTF procedure |
This is similar to the PUT procedure, but with formatting. |
PUTF_NCHAR procedure |
This is similar to the PUT_NCHAR procedure, but with formatting. Writes a Unicode string to a file with formatting. |
The UTL_IDENT package indicates whether PL/SQL is running on TimesTen, an Oracle client, an Oracle server, or Oracle Forms. Each of these has its own version of UTL_IDENT with appropriate settings for the constants.
Table 9-9 shows the UTL_IDENT settings for TimesTen.
The primary use case for the UTL_IDENT package is for conditional compilation, resembling the following:
$if utl_ident.is_oracle_server $then [...Run code supported for Oracle Database...] $elsif utl_ident.is_timesten $then [...code supported for TimesTen Database...] $end
See Example 9-1 below.
Table 9-9 UTL_IDENT Constants
Name | Description |
---|---|
IS_ORACLE_CLIENT |
BOOLEAN set to FALSE. |
IS_ORACLE_SERVER |
BOOLEAN set to FALSE. |
IS_ORACLE_FORMS |
BOOLEAN set to FALSE. |
IS_TIMESTEN |
BOOLEAN set to TRUE. |
Example 9-1 Using UTL_IDENT and TT_DB_VERSION
This example uses the UTL_IDENT and TT_DB_VERSION packages to show information about the database being used. For the current release, it displays either "Oracle Database 11.1" or "TimesTen 11.2.1". The conditional compilation trigger character, $
, identifies code that is processed before the application is compiled.
Command> run what_db.sql create or replace function what_db return varchar2 as dbname varchar2(100); version varchar2(100); begin $if utl_ident.is_timesten $then dbname := 'TimesTen'; version := substr(tt_db_version.version, 1, 2) || '.' || substr(tt_db_version.version, 3, 1) || '.' || substr(tt_db_version.version, 4, 1); $elsif utl_ident.is_oracle_server $then dbname := 'Oracle Database'; version := dbms_db_version.version || '.' || dbms_db_version.release; $else dbname := 'Non-database environment'; version := ''; $end return dbname || ' ' || version; end; / Function created. set serveroutput on; begin dbms_output.put_line(what_db()); end; / TimesTen 11.2.1 PL/SQL procedure successfully completed.
The UTL_RAW package provides SQL functions for manipulating RAW data types.
Table 9-10 describes the UTL_RAW subprograms.
Table 9-10 UTL_RAW Subprograms
Subprogram | Description |
---|---|
BIT_AND function |
Performs a bitwise logical |
BIT_COMPLEMENT function |
Performs a bitwise logical |
BIT_OR function |
Performs a bitwise logical |
BIT_XOR function |
Performs a bitwise logical |
CAST_FROM_BINARY_DOUBLE function |
Returns the binary representation of a BINARY_DOUBLE (in RAW). |
CAST_FROM_BINARY_FLOAT function |
Returns the binary representation of a BINARY_FLOAT (in RAW). |
CAST_FROM_BINARY_INTEGER function |
Returns the binary representation of a BINARY_INTEGER (in RAW). |
CAST_FROM_NUMBER function |
Returns the binary representation of a NUMBER (in RAW). |
CAST_TO_BINARY_DOUBLE function |
Casts the binary representation of a RAW into a BINARY_DOUBLE. |
CAST_TO_BINARY_FLOAT function |
Casts the binary representation of a RAW into a BINARY_FLOAT. |
CAST_TO_BINARY_INTEGER function |
Casts the binary representation of a BINARY_INTEGER (in RAW) into a BINARY_INTEGER. |
CAST_TO_NUMBER function |
Casts the binary representation of a NUMBER (in RAW) into a NUMBER. |
CAST_TO_NVARCHAR2 function |
Converts a RAW value represented using |
CAST_TO_RAW function |
Converts a VARCHAR2 value represented using |
CAST_TO_VARCHAR2 function |
Converts a RAW value represented using |
COMPARE function |
Compares RAW |
CONCAT function |
Concatenates up to 12 RAW values into a single RAW value. |
CONVERT function |
Converts RAW |
COPIES function |
Returns |
LENGTH function |
Returns the length in bytes of a RAW value |
OVERLAY function |
Overlays the specified portion of the target RAW with the overlay RAW, starting from byte position |
REVERSE function |
Reverses a byte sequence in RAW value |
SUBSTR function |
Returns |
TRANSLATE function |
Translates the bytes in the input RAW |
TRANSLITERATE function |
Converts the bytes in the input RAW |
XRANGE function |
Returns a RAW value containing all valid one-byte encodings in succession, beginning with the value |
The UTL_RECOMP package recompiles invalid PL/SQL modules. This is particularly useful after a major-version upgrade that typically invalidates all PL/SQL objects.
Table 9-11 describes the UTL_RECOMP subprograms.
Important:
To use this package, you must be the instance administrator and run it as SYS.UTL_RECOMP.Table 9-11 UTL_RECOMP Subprograms
Name | Description |
---|---|
RECOMP_PARALLEL procedure |
Recompiles invalid objects in a given schema, or all invalid objects in the database, in parallel. Note: Because TimesTen does not support DBMS_SCHEDULER, the number of recompile threads to run in parallel is always 1, regardless of what the user specifies. Therefore there is no effective difference between RECOMP_PARALLEL and RECOMP_SERIAL in TimesTen. |
RECOMP_SERIAL procedure |
Recompiles invalid objects in a given schema, or all invalid objects in the database, serially. |