PD16.7 Oracle12物理模型:设置表tablespace属性异常问题
PowerDesigner 16.7 Oracle 12物理模型表空间设置异常原因
核心原因解析
- 未存在键的自动映射逻辑:PowerDesigner的
SetPhysicalOptionValue函数在处理未预先存在的物理选项键时,会优先匹配层级更通用的键路径。<table_properties>/tablespace是表级专属的表空间配置项,但如果该键还没在表的属性集合里存在,函数会自动将操作映射到更通用的<physical_properties>/<standard>/tablespace(模型级默认表空间配置项),这就导致表的物理设置空白——实际修改的是全局默认值,而非单表专属配置。 - 已存在键的精准定位:当
<table_properties>/tablespace键已经存在时,GetPhysicalOptionValue能直接读取该键,SetPhysicalOptionValue也能精准定位修改,因为属性集合里已有明确的键路径,无需模糊匹配。 - 两次执行生效的逻辑:第一次执行时,因目标键不存在,函数触发了通用键的修改;但这次操作会间接触发PowerDesigner初始化
<table_properties>/tablespace这个专属键的逻辑,第二次执行时,函数就能正确找到并设置该键,最终生成符合预期的配置。
测试代码
sub processa For each tbl in pkgs.tables tbl.SetPhysicalOptionValue("<table_properties>/tablespace","ABC") Next end sub
内容的提问来源于stack exchange,提问作者Alexandre Hadjinlian Guerra
相关产品推荐
相关产品推荐

