../E14406-01.epub /> ../E14406-01.mobi />

OMBCREATE FUNCTION

Purpose

To create a Function.

Prerequisites

Should be in the context of a Oracle Module or Package or Transformation Module.

A Transformation Module may be WB_CUSTOM_TRANS for Public Transformations.

WB_CUSTOM_TRANS may by modified by an administrator.

WB_CUSTOM_TRANS is not dependent on any project.

Syntax

createFunctionCommand =  OMBCREATE ( FUNCTION "QUOTED_STRING" ( [ SET ( 
          "setPropertiesClause" [ SET "setFunctionCodeTemplateClause" | 
          "setReferenceIconSetClause" ] | "setFunctionCodeTemplateClause" | 
          "setReferenceIconSetClause" ) ] ) { ADD ( "addFuncProcParameterClause"
           | "addRelationalDependentClause" | "addFuncImplementationClause" ) } 
          )
     setPropertiesClause =  PROPERTIES "(" "propertyNameList" ")" VALUES "(" 
          "propertyValueList" ")"
     setFunctionCodeTemplateClause =  ( REFERENCE | REF ) CODE_TEMPLATE 
          "QUOTED_STRING" FOR PLATFORM "QUOTED_STRING" | ( ( REFERENCE | REF ) 
          CODE_TEMPLATE FOR PLATFORM "QUOTED_STRING" OPTIONS "(" 
          "propertyNameList" ")" VALUES "(" "propertyValueList" ")" )
     setReferenceIconSetClause =  ( REFERENCE | REF ) ICONSET "QUOTED_STRING"
     addFuncProcParameterClause =  PARAMETER "QUOTED_STRING" [ SET 
          "setPropertiesClause" ]
     addRelationalDependentClause =  ( REFERENCE | REF ) ( TABLE | VIEW | 
          MATERIALIZED_VIEW | SEQUENCE | FUNCTION | PROCEDURE | PACKAGE ) 
          "QUOTED_STRING"
     addFuncImplementationClause =  FUNCTION_IMPLEMENTATION "QUOTED_STRING" [ 
          SET "setFuncImplPropertiesClause" ]
     propertyNameList =  "UNQUOTED_STRING" { "," "UNQUOTED_STRING" }
     propertyValueList =  "propertyValue" { "," "propertyValue" }
     setFuncImplPropertiesClause =  PROPERTIES "(" "propertyNameList" ")" VALUES
           "(" "propertyValueList" ")"
     propertyValue =  ( "QUOTED_STRING" | "INTEGER_LITERAL" | 
          "FLOATING_POINT_LITERAL" )

Parameters

createFunctionCommand

This command creates a Function

QUOTED_STRING

Name of the Function to be created.

setPropertiesClause

Used to set properties (core, user-defined) for function. Valid properties are shown below:

getPropertiesClause

Basic properties for FUNCTION: 

Name: BUSINESS_NAME
Type: STRING(200)
Valid Values: Any valid character string in supported character set.
Default: Empty string
Business name of the Function 

Name: DESCRIPTION
Type: STRING(4000)
Valid Values: Any valid character string in supported character set.
Default: Empty string
Description of the Function 

Name: RETURN_TYPE
Type: STRING
Valid Values: PLS_INTEGER, BINARY_INTEGER, BOOLEAN, NUMBER, FLOAT, CHAR, VARCHAR, VARCHAR2, DATE
Default: NUMBER
Set the Return Type for Function 

Name: IMPLEMENTATION
Type: STRING
Valid Values: Any valid character string in supported character set.
Default: Empty string
Set the code for Function which is included global variable declaration and code between BEGIN and END. 

Name: IS_DETERMINISTIC
Type: BOOLEAN
Valid Values: true, false
Default: false
This setting helps the optimizer avoid redundant function calls. 

Name: IS_PARALLEL_ENABLE
Type: BOOLEAN
Valid Values: true, false
Default: false
This option sets flag to a stored function can be used safely in the slave sessions of parallel DML evaluations.

Basic properties for PARAMETER:

Name: BUSINESS_NAME
Type: STRING(200)
Valid Values: Any valid character string in supported character set.
Default: Empty string
Business name of the Parameter 

Name: DESCRIPTION
Type: STRING(4000)
Valid Values: Any valid character string in supported character set.
Default: Empty string
Description of the Parameter 

Name: DATATYPE
Type: STRING
Valid Values: BINARY_DOUBLE, BINARY_FLOAT, BINARY_INTEGER, BLOB, BOOLEAN, CHAR, CLOB, DATE, FLOAT, INTEGER, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, NCHAR, NCLOB, NUMBER, NVARCHAR2, PLS_INTEGER, RAW, TIMESTAMP, TIMESTAMP WITH LOCAL TIME ZONE, TIMESTAMP WITH TIME ZONE, VARHCAR, VARCHAR2, XMLTYPE
Default: NUMBER
Set the data type for Parameter

Name: IN_OUT
Type: STRING
Valid Values: IN, OUT, INOUT
Default: 'IN'
Set the parameter mode for Parameter 

Name: DEFAULT_VALUE
Type: STRING
Valid Values: Any valid character string in supported character set.
Default: Empty string
Set the default value for Parameter

setReferenceIconSetClause

Set reference icon set for function.

addFuncProcParameterClause

Adds one or more Parameters to this Function.

addRelationalDependentClause

This clause adds referential dependencies to other relational objects.

addFuncImplementationClause

Add function implementation for this function.

propertyNameList

Comma separated list of property names. Property names are unquoted.

propertyValueList

Comma separated list of property values.

setFuncImplPropertiesClause

Set function implementation properties.

propertyValue

Value of a property.

FUNCTION Object

Table 7-10 FUNCTION Object

Property Type Choices Min Max Default Description

AUTHID

STRING

, CURRENT_USER, DEFINER

none

none

empty string

Generate the transformation with selected AUTHID option. The function will be executed with the permissions defined by the AUTHID clause instead of the function owner's permissions.

CALLED_ON_NULL_INPUT

STRING

, CALLED ON NULL INPUT

none

none

empty string

Specifies that the function is called regardless of whether any of its arguments are null. It can return a null value or a non-null value.

DEPLOYABLE

BOOLEAN

true, false

none

none

true

Warehouse Builder generates a set of scripts to create an object only for those object marked as Deployable = true

DETERMINISTIC_STATE

STRING

, DETERMINISTIC, NOT DETERMINISTIC

none

none

empty string

Specifies that the function returns the same result every time, for a given set of inputs.

ENCRYPTION

STRING

, ENCRYPTION

none

none

empty string

Specifies whether the function body will be encrypted when the function is created.

EXECUTE_AS

STRING

, EXECUTE AS CALLER, EXECUTE AS OWNER, EXECUTE AS SELF

none

none

empty string

Generate the transformation with selected EXECUTE AS option. Function will be executed with the permissions defined by the EXECUTE AS clause rather than the function owner's permissions.

EXTERNAL_ACTION

STRING

, EXTERNAL ACTION, NO EXTERNAL ACTION

none

none

empty string

Specifies that the function takes some action that changes the state of an object not managed by the database manager, such as reading or writing a file in the OS-managed folders.

GENERATION_COMMENTS

STRING

none

none

none

empty string

Enter additional comments for the generated code.

INHERIT_ISOLATION_LEVEL

STRING

, INHERIT ISOLATION LEVEL WITH LOCK REQUEST, INHERIT ISOLATION LEVEL WITHOUT LOCK REQUEST

none

none

empty string

Specifies whether or not a lock request can be associated with the isolation-clause of the statement when the function inherits the isolation level of the statement that invokes the function. The default is INHERIT ISOLATION LEVEL WITHOUT LOCK REQUEST.

INHERIT_SPECIAL_REGISTERS

STRING

, INHERIT SPECIAL REGISTERS

none

none

empty string

Specifies that the function will inherit all the special registers from the invoking statement.

IS_DETERMINISTIC

STRING

, DETERMINISTIC

none

none

empty string

Optimization hint that specifies that the function returns the same result every time for a given set of arguments. If the function is called with the same arguments multiple times, then the optimizer may re-use the previous result.

IS_PARALLEL_ENABLE

STRING

, PARALLEL_ENABLE

none

none

empty string

Optimization hint, instructing Oracle to execute the function in parallel whenever called from within a SQL query.

LANGUAGE_SQL

STRING

, LANGUAGE SQL

none

none

empty string

This Optional clause indicates that the function is written in SQL PL. This is the default option, to satisfy SQL99 requirements.

PARAMETER_CCSID

STRING

, PARAMETER CCSID ASCII, PARAMETER CCSID UNICODE

none

none

empty string

Specifies the encoding scheme to use for all string data passed into and out of the function. If the PARAMETER CCSID clause is not specified, the default is PARAMETER CCSID UNICODE for Unicode databases, and PARAMETER CCSID ASCII for all other databases.

PRAGMA_AUTONOMOUS_TRANSACTION

STRING

, PRAGMA AUTONOMOUS_TRANSACTION

none

none

empty string

Instructs the PL/SQL compiler to mark the function as independent, which allows the function to suspend the main transaction.

SCHEMABINDING

STRING

, SCHEMABINDING

none

none

empty string

Specifies that the function is bound to the database objects that it references (that is, they cannot be dropped or modified). This condition will prevent changes to the function if other schema-bound objects are referencing it. If a function is created with SCHEMABINDING, then the function is a deterministic function.

SPECIFIC

STRING

none

none

none

empty string

Uniquely identifies a function within the current schema. The specific name can be the same as the function name, and it can be up to 18 characters long. If the SPECIFIC keyword is omitted, then the IBM DB2 UDB Database Manager automatically generates a unique identifier for the function in the format SQLyymmddhhmmssxxx.

SQL_DATA

STRING

, CONTAINS SQL, MODIFIES SQL DATA, READS SQL DATA

none

none

empty string

Specifies what type of SQL statements can be executed by the function. CONTAINS SQL specifies that the function can only execute SQL statements that do not read or modify SQL data. READS SQL DATA specifies that only SQL statements that do not modify SQL data can be executed by the function. MODIFIES SQL DATA specifies that all SQL statements supported in dynamic-compound-statement can be executed by the function.

STATIC_DISPATCH

STRING

, STATIC DISPATCH

none

none

empty string

Specifies that the function is to return the static values of an ARRAY or a user-defined type. Required if you have a non-SQL function that uses an ARRAY or a user-defined type as parameters.

WITH_NULL_INPUT

STRING

, CALLED ON NULL INPUT, RETURNS NULL ON NULL INPUT

none

none

empty string

Specifies that if RETURNS NULL ON NULL INPUT is specified in a CLR function, then SQL Server can return NULL when any of the arguments it receives is NULL, without actually invoking the body of the function. If CALLED ON NULL INPUT is specified, then the function body executes even if NULL is passed as an argument.