使用Powerdesigner的物理数据模型生成SQL脚本中开头处多出来的create or replace package PDTypes
来源:互联网 发布:淘宝买汽车吗 编辑:程序博客网 时间:2024/04/29 02:00
使用Powerdesigner有一段时间了,不过要注的地方还真的是很多很多,不懂的地方也很多很多,毕竟它太强大了。
新项目的物理数据模型还是使用Powerdesigner设计的,针对的是Oracle数据库,一切都设计好之后(含有大量触发器),用Powerdesigner直接连接上Oracle数据库进行数据库的生成,很快生成完了!使用PL/SQL Developer查看了一下情况,发现表是生成了,但所有触发器却显器存在错误,如下图所示:
顿时觉得不科学,于是随便打开一个触发器看了一下出错的原因,发现都是如下图所示的原因:
原因是在由Powerdesigner生成的触发器定义脚本中用到了名为“IntegrityPackage”的包,但执行触发器的定义脚本时却没有发现这个包。于是我再查看了一下包的定义情况,如下图所示:
发现确实是有这么一个包没有生成成功,问题是我没有在Powerdesigner的物理模型中定义这么一个包,先不管吧,先看看为什么这个包没有生成成功,先查看了下包PDTYPES的定义,结果显示如下:
错误信息中明确指出第7行中多出了一个Create,这个也不科学,第二Create是没问题的,往上查看才发现,定义PDTypes这个包头的脚本块的最后没有执行标识符“/”,才导致两个包头都定义失败,进而导致“IntegrityPackage”包的包体也定义失败,如下图所示:
最终导致使用了“IntegrityPackage”包的触发器通通生成失败。
知道原因在哪儿了,很简单,在PDTYPS包头的定义最后加上脚本块执行标识符“/”就行了,在Powerdesigner生成的脚本中的PDTYPS包头定义的最后加上后,重新生成果然是没有问题了!如下图所示:
然后包头和包体都生成了,最终的触发器也都没问题了,如下图所示:
我的问题是解决了,可是回想下,我其实我并没有定义这两个包,这两个包中的PDTYPS包也只定义了包头,没有包体...“IntegrityPackage”包是在各个触发器中用到了,但PDTYPS好像并没有,能不能在由Powerdesigner生成时就去掉这个呢?Powerdesigner又是在哪儿将这些东西加上去的呢?在Powerdesigner的各个设置面版上找了一圈又一圈,最后发现在Database->Edit Current DBMS...->General->Script->Sql->File里的TrgHeader里加上去的,如下图所示:
真心伤不起呀,藏得这么深!
如果你直接拿生成的SQL脚本到PL/SQL Developer里执行,可能会因为这个问题收到如下的错误信息:
Warning: Package created with compilation errors
Warning: Package body created with compilation errors我在这里特地发贴,多用点相关的关键字,方便遇到的同学百度到此!还在其他网站上做了一些相关的问题,本着尽可能让大家尽快发现问题所在吧!
- 使用Powerdesigner的物理数据模型生成SQL脚本中开头处多出来的create or replace package PDTypes
- PowerDesigner-生成物理数据模型
- 使用powerdesigner导入sql脚本,生成物理模型,name和code都显示英文的解决方法
- 如何用Powerdesigner的PDM(物理数据模型)生成数据库
- 如何用Powerdesigner的PDM(物理数据模型)生成数据库
- PowerDesigner中CDM->PDM->SQL(概念数据模型->物理数据模型->SQL)
- powerdesigner生成SQL脚本的
- PowerDesigner 物理数据模型生成数据库脚本并执行
- PowerDesigner反向生成物理数据模型
- PowerDesigner反向生成物理数据模型
- PowerDesigner数据模型(CDM->PDM->SQL脚本的转换流程)
- PowerDesigner导入sql脚本生成物理模型
- Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
- Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
- PowerDesigner 生成对应数据库的sql脚本
- PowerDesigner的逆向工程,将ORACLE,SQL SERVER的脚本导入到PowerDesigner中生成模型
- powerdesigner反向SQLServer2008数据库生成物理数据模型
- PowerDesigner将物理数据模型图生成图片
- UVA - 11491 Erasing and Winning
- 秒杀多线程第十一篇 读者写者问题
- 不错的一个菜鸟学习sitemap,内容很全。
- 秒杀多线程第十二篇 多线程同步内功心法——PV操作上
- 中体时时彩平台源码(修正版)纯源码完整可用下载
- 使用Powerdesigner的物理数据模型生成SQL脚本中开头处多出来的create or replace package PDTypes
- java中对字符串的操作
- 横向思维
- 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
- java 字节流与字符流的区别
- 二叉树中和为某一值的路径
- 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
- django 中 manage.py通常使用的各种命令大全(包含django 安装指导及测试)
- Aspose Cells 控件如何实现数据过滤(附代码和下载地址)