powdesigner 物理模型生成SQL脚本的一些问题

1、由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)原因未知。
 
   解决办法一:打开PDM后,菜单栏会出现Database,进入Database - Edit Current DBMS -script-objects-column-maxlen,把value值调大(原为30),比如翻一倍改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!
   解决办法二: 生成建表脚本时会弹出Database generation提示框:把options - check model的小勾给去掉,就是不进行检查(不推荐)!或者可以修改C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\DBMS\oracl9i2.xdb文件 修改好后,再cdm转为pdm时,选择“Copy the DBMS definition in model”把把这个资源文件拷贝到模型中。
 
2、生成的建表脚本中如何把对象的双引号去掉。
 
    解决办法一:进入Tools-Model Options-Naming Convention,把Name和Code的标签的Charcter case选项设置成Uppercase或者Lowercase,只要不是Mixed Case就行!
    解决办法二:选择Database->Edit current database->Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的 comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”即可!
    解决办法三:在打开pdm的情况下,进入Tools-Model Options-Naming Convention,把Name和Code的标签的Charcter case选项设置成Uppercase就可以!
 
3、建立一个表后,检测出现Existence of index的警告 A table should contain at least one column, one index, one key, and one reference.
 
    解决办法:事实上可以不检查 Existence of index ,也就没有这个警告错误了!它的意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!
 
4、name与code同步问题
 
   解决办法:Name和Code 的右侧都有一个按钮“=”,如果需要不同步的话,把这个按钮弹起来就可以了。  Tools->General Options->Dialog->Name to Code Mirroring (去掉)
 
5。对于大小写不敏感的数据库(如Oracle),PowerDesign在创建脚本时自动给表名和字段名加上双引号,以“强字符串”形式来获取区分大小写,这样给sql语句的编写制造很多麻烦。必须去掉这个多余的功能。
    
 解决办法:Database -〉Edit Current DBMS -〉Script. -〉Sql -〉Format -〉CaseSensitivityUsingQuote 右边面板参数值 Value 选择No
 
6.生成SQL时报错:Generation aborted due to errors detected during the verification of the model。
 解决办法:在Database—>Generate Database (或者用Ctrl+G快捷键)来生产sql语句时,把检查模型的选项(Check Model)前的那个勾去掉即可。
 
7.导出数据库时报错:Error The following objects do not have unique constraint。
   解决办法:对象不具备唯一性约束,说白了就是constraint name重命,检查一下就行。
 
8.物理模型导出数据库时保存name作为code的注释行.
   解决办法:Tools-->Execute Commands-->Edit/Run Script 在打开的窗口中 past 下面的代码:
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl 'the current model
'get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessFolder mdl
End If
'This routine copy name into code for each table, each column and each view
'of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name + tab.comment '此处任意设置表的注释,此处为表名和注释一起
Dim col ' running column
for each col in tab.columns
col.comment= col.name + col.comment
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next
' go into the sub-packages
Dim f 'running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
运行,然后Database --> Generate Database ,在formata选中Generate name in empty comment这时就可以生成带有comments为物理模型中Name属性的SQL语句了。
 
9.导出SQL脚本运行注释出现乱码问题:
  解决办法:乱码自然就是字符集的问题,先检查一下自己数据库的字符集,然后在Database --> Generate Database ,在formata页面中的Encoding中选中适合的字符集就可以解决问题了。
 
10.导出SQL脚本运行建表时注释行出现重复现象(未解决)。
 
11.10.导出SQL脚本运行建表时缺少几个表。
     这个问题的出现是因为有的表上的键的设定出现错误。解决办法就是找出缺少的表,检查表的键,改正之后再生成脚本。应该就没有问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值