Generate custom SQL code with Template Language in Erwin

本文介绍如何使用Erwin的数据仓库工具通过自定义模板自动生成除手动创建外的所有表格视图。利用Erwin的前向工程功能,创建了三个模板以实现视图的创建与删除。

Secenario: I want to generate view for every table in data warehouse automately, except some views create manually. Fortunately, Erwin privode a back door in the function of Forward Engineer, so it could be implemented simply.


Reference Doc:

Template Language and Macro Reference.pdf

Editing Forward Engineering Templates.pdf

 

Ok, let's take a look at how to do that. Below is the steps.

 

1. open Erwin, click menu item Tool->Forward Engineer->Schema Generation.

2. Edit database template, the template editor will pop up.

3. create 3 template using the following code.


SPItemBegin [keep format] = Is View Existing
[
ForEachOfType("View")
{
    @if(Equal(Property("Name"),"%1"))
    {
        "Success"
    }
}
]
SPItemEnd

SPItemBegin [keep format] = Create View Of Entity
[
    "CREATE VIEW views."< QuotedName >
    "/nAS"
    "/nSELECT/n/t "
    ForEachOwnee("Attribute")
    {
        ListSeparator("/n/t,")
        Property("Physical_Name")
    }
    "/nFROM "
    [ FE::OwnerOverride( "true" ) "." ] < QuotedName >
    FE::EndOfStatement
]
SPItemEnd

SPItemBegin [keep format] = Drop View Of Entity

FE::Bucket( "35" )
[
    @if(ExecuteTest("Is View Existing","",Property("Physical_Name")))
    {
               
    }

    @elseif(Equal(Property("Name_Qualifier"),"adw"))
    {
        ["DROP VIEW views."Property("Physical_Name")]
        "/n/n"
        FE::EndOfStatement
    }
]
SPItemEnd

 

4. Modify template  "Create Entity", "Drop Entity", they are the entry point of Forward engineer.


SPItemBegin [keep format] = Drop Entity
    [
    ...
        [
        FE::Bucket( "35" )
        Execute( "Drop View Of Entity")
        ]
    ...
    ]
SPItemEnd
       
SPItemBegin [keep format] = Create Entity
    [
    ...
        [
            FE::Bucket( "140" )

            Execute( "Create View Of Entity" )
        ]
    ...
    ]
SPItemEnd

5. Save what you made to another fet file. At this point, you can try this new function in "Schema generation" dialogue by clicking Preview buttion. If drop veiw and create view statement is shown, that's correct.

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值