powerdesigner简单使用

news2024/9/23 5:26:52

批量修改表名+schema

vb里面好像没有!=的功能?我之前疯狂报错,直到把"!=“改成了”<>";

table中的字段名,似乎用下面的界面就可以调用;

在这里插入图片描述

推荐找一些vbs的语法记录看一下

批量加入前缀后,所有的表名竟然有了双引号,而且是把前缀一起包起来的那种双引号,目前的解决方案是利用Ctrl+R批量替换;

😄``2021年3月11日10:31:42`

以上问题修正了,原因是因为之前在vbs里修改表名的时候,是写成了:

tabname="TK_APP.DOC_"&table.name

应该是因为那个点的原因,导致他把整个表名都包在了双引号下,因为它识别不了这种前缀schema,后来探索了一下,如果要批量加schema的话,需要利用图形界面,首先我们将上面的代码改成:

tabname="DOC_"&table.name

然后,选中表结构,右键选择properties属性,在弹出的对话框里,选择General选项卡,在下面的owner行中,新建一个用户名,这个就是schema了。

在这里插入图片描述

然后,在进行“Database Generation“的时候,点击”Format“选项卡,选择上”owner prefix“,

在这里插入图片描述

这时候再去Preview一下DDL,会发现表名已经没有引号了,变成了:

在这里插入图片描述

大功告成。

Informatica导出的DDL,每套create下应该加分号,否则会被解析成一整个create;

批量设置表的所有者user

上面的方法没法统一设置所有者,只能一个个右键属性来查看,下面有一个比较笨的方法:

在这里插入图片描述

model->tables:, 点击属性一个个改动。

--------------------------------------2021年3月18日10:19:44---------------------------------------

找到了一种更好的方式,利用vbs脚本来做:

首先要新建一个user,注意pdm中大小写敏感,一定要设置成大写的user!

在模型上右键New,即:

在这里插入图片描述

然后戳user:

在这里插入图片描述

填写user名:

在这里插入图片描述

能在模型下面的Users文件夹里看到新建的user就可以,

在这里插入图片描述

然后在vbs脚本中设置批量修改table的属主owner:

Dim Model
set MyModel = ActiveModel 
 
for each usr in MyModel.Users 
	if usr.Code = "xxx" then '在这修改属主,而且要先在PD内新建一个cbpdata用户
        for each n in MyModel.Tables 
            set n.Owner = usr 
        next 
        exit for 
        end if 
next 

大功告成。

参考文献:PowerDesigner使用VBScript脚本设置表属主

字段名被截断

powerdesigner里,如果字段的名称太长的话,会默认被截断,比如说,

表结构里字段名是:

在这里插入图片描述

结果generate之后是:

在这里插入图片描述

这是因为powerdesigner默认的字段名长度为30,超过30之后的会被截断。

所以把字段名长度的限制改大就可以了。

Database->edit current dbms,然后修改script->objects->column->maxlen里面,value的值即可,设置大一些,直接255;

在这里插入图片描述

参考文献:

PowerDesigner中修改建表语句中字段长度限制

脚本执行

在这里插入图片描述

在tools->execute commands -> edit/run script下执行vbs脚本,我已经写好了一个自动扩容加自动加tablename前缀的,内容如下:

'*****************************************************************************  
     '文件:powerdesigner.ucase.VBs  
     '版本:1.0  
     '功能:遍历物理模型中的所有表,将表名、表代码、字段名、字段代码全部由小写改成大写;  
' 并将序列的名和代码由小写改成大写;字段扩容;表名前缀;设定schema;
     '用法:打开物理模型,运行本脚本(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  
     dim user
    for each user in model.Users   '批量修改属主姓名,即schema
         if user.Code="app" then
            for each table in folder.tables
               set table.owner=user
               next
            exit for
         end if
     next
     for each table in folder.tables  
         if not table.IsShortCut then   
            ProcessTable table  
         end if  
        table.code = "DOC_"+UCase(table.code)	'表名统一加前缀DOC_
     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)
     if col.length<>0 Then 
            col.length = col.length * 2 '字段自动扩容,翻倍
     end if
     next   
    table.name = UCase(table.name)  
     table.code = UCase(table.code)  
     end sub

2021年3月18日10:30:28 新增功能,可批量修改属主Owner,但需要提前在模型内建好对应的User。

参考文献

  1. Powerdesigner SqlServer转Oracle(转) 举了几个脚本的例子,但格式和讲解并不好;
  2. 通过编写PowerDesigner脚本功能批量修改属性 格式清晰,备注全面,虽然只是讲了一个小例子,但是五脏俱全,个人感觉,PD脚本应该有的模式它都有了;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务开发系列 第十二篇:MongoDB

总概 A、技术栈 开发语言:Java 1.8数据库:MySQL、Redis、MongoDB、Elasticsearch微服务框架:Spring Cloud Alibaba微服务网关:Spring Cloud Gateway服务注册和配置中心:Nacos分布式事务:Seata链路追踪框架:Sleuth服务降级与熔断:SentinelORM框架:MyBatis-Plus分布式任…

英语时态的变化

思考&#xff1a;汉语和英语是靠什么来说明时态的 汉语和英语关于时态的区别 汉语英语1.人们采取行动。&#xff08;一般状态&#xff09;People take actions.&#xff08;动词&#xff0c;注意动词的变化&#xff09;2.人们正在采取行动。&#xff08;正在进行&#xff09;P…

window中断/连网操作的命令提示符

window中断/连网操作的命令提示符 通过 cmd 实现网络查看与断/联网 以管理员身份打开命令提示符查看计算机网络接口名称 netsh interface show interface断网操作 # netsh interface set interface "你想断开的接口名称" admindisable netsh interface set inter…

【MySQL数据库】事务和存储引擎

【MySQL数据库】事务和存储引擎 一&#xff0c;事务1事务的概念 二 、事务的ACID特点2.1原子性2.2一致性&#xff08;Consistency&#xff09;2.3隔离性2.4持久性 三、脏读、不可重复读、幻读、丢失更新3.1脏读3.2不可重复读3.3幻读3.4丢失更新 四、事务的隔离级别事务隔离级别…

动态规划dp —— 28.摆动序列

连续相同的数不算是摆动序列 单独一个或不相等的两个数算是摆动序列 1.状态表示 是什么&#xff1f;dp表中里的值所表示的含义就是状态表示 dp[i]表示&#xff1a;以i位置为结尾的所有子序列中&#xff0c;最长的摆动序列的长度 但是i位置的值可能是下降后的&#xff0c;…

微信小程序自定义模块

自定义wxs并引入 新建一个tools.wxs 创建一些function,并使用moule.exports {}导出 使用 <wxs>标签 并填写正确src 书写module名称 之后在其他标签内&#xff0c;使用 {{自定的module名称.自定义的一个function并传入对应参数}}就可以实现参数在自定义function中的导入…

深入剖析 Spring Boot 的 SPI 机制

Java SPI实现 示例说明 创建动态接口 实现类1 实现类2 相关测试 运行结果&#xff1a; 源码分析 Spring SPI Spring 示例 定义接口 相关实现 相关测试类 输出结果 源码分析 SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制&#xff0c;可以用来启…

整体撸一遍PMSM的滑模观测器(SMO)公式+模型+代码

滑模的基本原理参照这一系列文章&#xff1a; 滑模系列文章链接&#xff1a; 永磁同步电机矢量控制到无速度传感器控制学习教程&#xff08;PMSM&#xff09;&#xff08;一&#xff09; 永磁同步电机矢量控制基础补充&#xff08;五&#xff09;——什么是低通滤波器&#x…

【MSP432电机驱动学习—上篇】TB6612带稳压电机驱动模块、MG310电机、13线霍尔编码器

所用控制板型号&#xff1a;MSP432P401r 今日终于得以继续我的电赛小车速通之路&#xff1a; 苏轼云 “ 素面常嫌粉涴 &#xff0c; 洗妆不褪朱红。 ” 这告诫我们不能只注重在表面粉饰虚伪的自己&#xff0c;要像梅花一样&#xff0c;不断磨砺自己的内在~ 后半句是 “…

记录一次磁盘修复的过程

系统无法远程ssh进入&#xff0c;连接显示器查看终端&#xff0c;发现如上错误。 开始按照网上的流程进入单用户模式&#xff0c;fsck命令始终没找到。看来切换的方式不对。经过一番查阅&#xff0c;最终找到了&#xff0c;原来进入单用户有好几种模式&#xff0c;大家普遍记住…

存储笔记11 商业连续性

Introduction to Business Continuity Ÿ Define Business Continuity and Information Availability Ÿ Detail impact of information unavailability Ÿ Define BC measurement and terminologies Ÿ Describe BC planning process Ÿ Detail BC technology solutions 何为…

C语言标准库(常用函数)详解(含示例)数学公式:math.h

目录 math.h的介绍 math.h的概述 库中定义的宏&#xff1a; HUGE_VAL 库函数&#xff08;只讲解常用函数&#xff09; 三角函数 示例代码 输出 双曲函数 示例代码 输出 指数和对数函数(只含常用函数) 示例代码 输出 常用函数pow&#xff0c;sprt&#xff0c;cbrt&…

监督学习和无监督学习

文章目录 监督学习和无监督学习监督学习算法包括无监督学习算法包括OpenCV十个子类举例&#xff1a; 监督学习和无监督学习 监督学习和无监督学习是机器学习领域中两种不同的学习范式&#xff0c;它们之间的区别在于数据的标签或标记的可用性以及学习任务的性质。 监督学习&am…

与chagpt对话记录

每日chagpt对话记录 关注我一下 vscode 浏览器版本 c 函数 无法跳转 C/C IntelliSense, debugging, and code browsing. C/C IntelliSense、调试和代码浏览是指在使用VS Code进行C/C开发时的一些核心功能。下面是对这些功能的简要说明&#xff1a; IntelliSense&#xff08;智能…

CSS基础学习--18 导航栏

一、导航栏链接列表 作为标准的 HTML 基础一个导航栏是必须的。 在我们的例子中我们将建立一个标准的 HTML 列表导航栏。 导航条基本上是一个链接列表&#xff0c;所以使用 <ul> 和 <li>元素非常有意义 <!DOCTYPE html> <html> <head> <…

山西电力市场日前价格预测【2023-06-19】

日前价格预测 预测明日&#xff08;2023-06-19&#xff09;山西电力市场全天平均日前电价为396.37元/MWh。其中&#xff0c;最高日前价格为468.17元/MWh&#xff0c;预计出现在21: 45。最低日前电价为345.23元/MWh&#xff0c;预计出现在13: 00。 以上预测仅供学习参考&#x…

端口进程内存查看操作(linux、windows)

一 windows操作命令 1、查看某个端口的信息 netstat -aon | findstr "端口" 2、查看PID对应的应用程序名 tasklist | findstr "PID" 3、taskkill /f /t /im 进程名称 然后结束该进程&#xff1a;taskkill /f /t /im 程序名.exe &#xff08;当然你也…

SpringBoot第12讲:SpringBoot接口如何对参数进行校验

SpringBoot第12讲&#xff1a;SpringBoot接口如何对参数进行校验 本文是SpringBoot第12讲&#xff0c;使用SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的&#xff0c;同时还需要给出校验的返回信息&#xff0c;放到上文我们统一封装的结构中。那么如何…

经典问题解析一

关于 const 的疑问 const 什么时候为只读变量&#xff1f;什么时候为常量&#xff1f; const 常量的判别标准 只有用字面量初始化的 const 常量才会进入符号表 (const 引用除外) 使用其他变量初始化的 const 常量仍然是只读变量 被 volatile 修饰的 const 常量不会进入符号…

TOGAF10®标准中文版--(架构开发方法)开发周期

1.2.1 关键点 以下是关于 ADM 的关键点&#xff1a; ADM 在整个过程中、阶段之间和阶段内都是迭代的&#xff08;参见TOGAF 标准 — ADM 技术&#xff09; 对于 ADM 的每次迭代&#xff0c;都必须做出新的决定&#xff1a; — 企业覆盖范围待定 — 要定义的详细程度 — 目…