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

平时经常用PowerDesigner设计表结构。但是有时候在设计表结构和字段的时候经常是大小写混合用。导致一张表中有的字段是大写有的是小写。PowerDesigner在设计表示如果表明或字段名是小写。则在生成SQL时会自动在表名上使用双引号。例如:
/*==============================================================*/
/* Table: "test"                                                */
/*==============================================================*/
create table "test"  (
   "username"           varchar2(24),
   "full_name"          varchar2(24)
);
ORACLE会认为该表和字段使用小写字母命名。ORACLE默认是使用大写字母的,这样会导致有些用法用不了。下面提供段代码可以把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调出脚本执行窗口,输入下边的代码就可以了。
我在帮别人设计博客系统tbw淘宝商城http://www.tbwchs.com时就遇到这个问题。

猜你喜欢

转载自caiyunlong.iteye.com/blog/1407731