Generate custom SQL code with Template Language in 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.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值