PowerDesignerの表フィールドを小文字から大文字に一括変更

2267 ワード

プロジェクトのためにプロジェクトデータベースをsqlserverからoracleに変換する必要があります.
以前は一部のテーブルのフィールドが小文字であったが、PowerDesignerリバースエンジニアリングでDBMSをOracle 11 gに再切り替えた場合、元のテーブルが小文字であるか、以下のVBスクリプトで一括変更でき、Tools=>Execute CommandsのEdit/Run Scripts、またはCtrl+Shift+Xで以下のスクリプトを実行すればよい.
'*****************************************************************************
 '  :powerdesigner.ucase.VBs
 '  :1.0
 '  :           ,   、   、   、             ;
 '                 。
 '  :      ,     (Ctrl+Shift+X)
 '  :
 '*****************************************************************************
 dim model 'current model
 set model = ActiveModel
If (model Is Nothing) Then
 MsgBox "There is no current Model"
 ElseIf Not model.IsKindOf(PdPDM.cls_Model) Then
 MsgBox "The current model is not an Physical Data model."
 Else
 ProcessTables model
 ProcessSequences model
 End If
'*****************************************************************************
 '  :ProcessSequences
 '  :         
 '*****************************************************************************
 sub ProcessSequences(folder)
 '        :     
 dim sequence
 for each sequence in folder.sequences
 sequence.name = UCase(sequence.name)
 sequence.code = UCase(sequence.code)
 next
 end sub
'*****************************************************************************
 '  :ProcessTables
 '  :        
 '*****************************************************************************
 sub ProcessTables(folder)
 '       
 dim table
 for each table in folder.tables
 if not table.IsShortCut then 
ProcessTable table
 end if
 next
 '        
 dim subFolder
 for each subFolder in folder.Packages
 ProcessTables subFolder
 next 
end sub
'*****************************************************************************
 '  :ProcessTable
 '  :    table     ,           ,
 '            
 '           
'*****************************************************************************
 sub ProcessTable(table)
 dim col
 for each col in table.Columns
 '           
 col.code = UCase(col.code)
 col.name = UCase(col.name)
 next 
table.name = UCase(table.name)
 table.code = UCase(table.code)
 end sub