All Downloads are FREE. Search and download functionalities are using the official Maven repository.

templates.definition.Definition.ftl Maven / Gradle / Ivy

Go to download

Maven plugin to generate Java classes from StoredProcedure and Functions in Database

There is a newer version: 1.8.20
Show newest version
<#if objects?size != 0>
# object definitions


<#if driverName == 'oracle' >
<#list objects as parameter>
<#if parameter.object>
```sql
CREATE OR REPLACE TYPE ${parameter.realObjectName} AS OBJECT
(
<#list parameter.parameters as param>
    ${param.name} ${param.sqlNativeTypeName}<#if param.string>(100 CHAR)<#sep>,

)
```
<#elseif parameter.array>
```sql
CREATE OR REPLACE TYPE ${parameter.realObjectName} AS TABLE OF <#if parameter.parameters[parameter.parameters?size - 1].realObjectName??>${parameter.parameters[parameter.parameters?size - 1].realObjectName}<#else>${parameter.parameters[parameter.parameters?size - 1].sqlNativeTypeName}<#if parameter.parameters[parameter.parameters?size - 1].string>(100 CHAR);
```



<#if procedures?size != 0>
# Procedure definitions


<#list procedures as proc>
```sql
CREATE OR REPLACE <#if proc.function>FUNCTION<#else>PROCEDURE ${proc.name}
<#if proc.hasInput || proc.hasOutput >
(

<#assign nameLength = 0>
<#assign directionLength = 0>
<#list proc.parameters as parameter>
<#if !(parameter.name?length < nameLength)>
<#assign nameLength = parameter.name?length>

<#if !(parameter.sqlNativeDirection?length < directionLength)>
<#assign directionLength = parameter.sqlNativeDirection?length>


<#list proc.parameters as parameter>
    ${parameter.name}<#list parameter.name?length..nameLength as i>     ${parameter.sqlNativeDirection} <#list parameter.sqlNativeDirection?length..directionLength as i> ${parameter.sqlNativeTypeName}<#sep>,

<#if proc.hasInput || proc.hasOutput >
)

AS
BEGIN

<#if proc.checkResult>
    ${outParameterCode} := ${successCode};
    ${outParameterMessage} := 'OK';


<#if proc.hasResultSet>
<#list proc.parameters as parameter>
<#if parameter.resultSet>
    OPEN ${parameter.name} FOR
    SELECT
<#list parameter.parameters as pcursor>
        <#if pcursor.string>' <#elseif pcursor.clob>TO_CLOB(' <#elseif pcursor.blob>TO_BLOB(0<#elseif pcursor.date>SYSDATE<#else>0<#if pcursor.string>'<#elseif pcursor.clob>')<#elseif pcursor.blob>) AS ${pcursor.name}<#sep>,

    FROM DUAL;



<#if !proc.checkResult && !proc.hasResultSet>
    NULL;


EXCEPTION
   WHEN OTHERS
   THEN
<#if proc.checkResult>
        ${outParameterCode} := 1${successCode};
        ${outParameterMessage} := 'NOK';
<#else>
        NULL;


END;
```






© 2015 - 2024 Weber Informatics LLC | Privacy Policy