PowerDesigner 表结构和字段大小写转换

明确需求

面对不同的数据库大小写规范,一个个字段修改太麻烦了,如果使用了PowerDesigner设计,有比较简单的方法。进入PowerDesigner,打开一个PDM,在菜单栏找到:Tools – Excute Commands – Edit/Run Script,或者直接按Ctrl+Shift+X调出脚本执行窗口,输入下边的代码就可以了。使用的是VBScript,语义比较容易理解,可以根据自己的需求修改。

注意:model名称与代码中需要保持一致

    

打开模型 Tools-->Execute Commands --> Edit/Run Script

UCase大写 LCase小写

Option Explicit  
ValidationMode = True  
InteractiveMode = im_Batch  
Dim mdl ' 当前模型  
' 获取当前模型  
Set mdl = ActiveModel  
If (mdl Is Nothing) Then  
   MsgBox "没有打开一个模型" 
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then  
   MsgBox "当前模型不是一个PDM" 
Else  
'调用处理程序  
   ProcessFolder mdl  
End If    
'调用的处理程序  
Private sub ProcessFolder(folder)  
   Dim Tab '要处理的表  
   for each Tab in folder.Tables  
    ' if not Tab.isShortcut then  
        ' Tab.code = tab.name  
        '表名处理,前边添加前缀,字母小写  
        Tab.name=  UCase(Tab.name)  
        Tab.code= UCase(Tab.code)  
         Dim col ' 要处理的列  
         for each col in Tab.columns  
            '列名称和code全部小写,大写诗UCase  
            col.code= UCase(col.code)  
            col.name= UCase(col.name)  
         next  
      'end if 
   next    
     'end if 
   end sub 

PowerDesigner去除双引号

平时经常用PowerDesigner设计表结构。但是有时候在设计表结构和字段的时候经常是大小写混合用。导致一张表中有的字段是大写有的是小写。PowerDesigner在设计表示如果表明或字段名是小写。则在生成SQL时会自动在表名上使用双引号。例如:

/*==============================================================*/ 
/* Table: "test"                                                */ 
/*==============================================================*/ 
create table "test"  ( 
   "username"           varchar2(24), 
   "full_name"          varchar2(24) 
); 

ORACLE会认为该表和字段使用小写字母命名。ORACLE默认是使用大写字母的,这样会导致有些用法用不了。

一般可以在生成sql文后把所有双引号(“)去掉. 
其实powerdesigner中可以设置生成sql文的时候不自动添加双引号(“). 
设置方法:

  1. 设置当前为oracle 
    这里写图片描述

  2. 选择Database->Edit Current DBMS菜单 
    这里写图片描述 
    这里写图片描述

  3. 选中General选项卡,依次打开Script->Sql->Fomat->CaseSensitivityUsingQuote 
    这里写图片描述

  4. 将右侧的Value值选中No 
    这里写图片描述

  5. 点击应用,确定.

这样生成sql文时,就不会自动加上双引号(“).

下面提供段代码可以把PowerDesigner中的小写字母变为大写字母。 
代码如下:

Option Explicit  
ValidationMode = True  
InteractiveMode = im_Batch  
Dim mdl ' 当前模型  
' 获取当前模型  
Set mdl = ActiveModel  
If (mdl Is Nothing) Then  
   MsgBox "没有打开一个模型" 
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then  
   MsgBox "当前模型不是一个PDM" 
Else  
'调用处理程序  
   ProcessFolder mdl  
End If    
'调用的处理程序  
Private sub ProcessFolder(folder)  
   Dim Tab '要处理的表  
   for each Tab in folder.Tables  
    ' if not Tab.isShortcut then  
        ' Tab.code = tab.name  
        '表名处理,前边添加前缀,字母小写  
        Tab.name=  UCase(Tab.name)  
        Tab.code= UCase(Tab.code)  
         Dim col ' 要处理的列  
         for each col in Tab.columns  
            '列名称和code全部小写,大写诗UCase  
            col.code= UCase(col.code)  
            col.name= UCase(col.name)  
         next  
      'end if 
   next    
' 处理视图  
'  Dim view 'running view  
'   for each view in folder.Views  
   '   if not view.isShortcut then  
       '  view.code = view.name  
    '  end if 
  ' next     
   ' 递归进入 sub-packages  
   Dim f ' sub  folder  
   For Each f In folder.Packages  
      if not f.IsShortcut then  
         ProcessFolder f  
      end if 
   Next  
end sub 

使用方法:进入PowerDesigner,打开一个PDM,在菜单栏找到:Tools – Excute Commands – Edit/Run Script,或者直接按Ctrl+Shift+X调出脚本执行窗口,输入下边的代码就可以了。

猜你喜欢

转载自blog.csdn.net/zam183/article/details/88952311