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

原文地址:https://blog.csdn.net/u010216641/article/details/48712503

##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调出脚本执行窗口,输入下边的代码就可以了。

猜你喜欢

转载自www.cnblogs.com/dirgo/p/9354734.html