Powerdesigner表名及字段的大小寫轉換腳本

用PowerDesigner設計表結構時,若一不小心在寫表結構和字段的時候用了大小寫混合或者小寫。PowerDesigner則在生成SQL時會自動在表名上使用雙引號。例如:
/*==============================================================*/
/* Table: "test"                                                */
/*==============================================================*/
create table "test"  (
   "username"           varchar2(24),
   "full_name"          varchar2(24)
);
ORACLE會認爲該表和字段使用小寫字母命名,但是ORACLE默認是使用大寫字母的,這樣會導致有些用法用不了(比如修改字段名,數據修改等)。下面提供段腳本代碼可以把PowerDesigner中的小寫字母變爲大寫字母。
 
使用方法:進入PowerDesigner,打開需要轉換的PDM,在菜單欄找到:Tools – Excute Commands – Edit/Run Script,或者直接按Ctrl+Shift+X調出腳本執行窗口,輸入下邊的代碼就可以了。

代碼如下:
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章