0

我们正在使用 Sparx Enterprise Architect (EA 9.2) 和数据库支持的存储库(Oracle XE 11,使用 Windows OLE / ODBC 驱动程序)。我们所有人都在使用 Windows Vista 32 位。

我们在导入模型时反复遇到以下 EA 错误:

OraOLEDB
ORA-12899: value too large for column "REPOUSER"."T_CONNECTOR"."BTM_MID_LABEL" 
  (actual: 52, maximum: 50)

似乎某些列的宽度只有 50 个字符。我想增加这个尺寸。因此,问题是:

  1. EA 9.2 是否支持更宽的列?有没有人成功地在实际项目中尝试过这个?
  2. 如果“是”:EA 9.2 将如何应对 DB 端值的增加?我需要重新创建连接吗?
  3. 如果这两个问题的答案都是“是”:有没有人在运行时“扩大”Oracle XE 11 的列而不转储并重新导入新模式的经验?

非常感谢,

米库

4

2 回答 2

1

此导入错误仅在 Oracle 中发生,可能是由于 Oracle 处理扩展字符范围的方式。

您必须解决其他三个选项: 1. 如果有问题的连接器是 Stateflow,则运行 Enterprise Architect 的项目数据完整性检查:项目 -> 数据管理 -> 项目完整性检查

  1. 如果它不是 StateFlow,那么您可以尝试在 Oracle NLS_LENGTH_SEMANTICS ='CHAR'上设置选项;但是我会先在非生产数据库上测试这个!!

  2. 如果您清除数据库中的 TOP_MID_LABEL 字段,当 Enterprise Architect 再次加载图表时,它将用元素名称动态填充它(如果该字段为空)。

我相信 Sparx Systems 的开发人员在工作中有一种更简洁的方式来处理这个问题,所以了解他们,在不久的将来可能会有一些东西可用。

于 2015-03-18T01:30:49.460 回答
0

要回答 yopur 问题的 Oracle 部分,加宽列很容易。Oracle 允许我们增加列大小,即使它们包含数据。(如果我们想减小列大小,这不是真的:那么我们必须使用空列并重新填充数据。)

所以语法是:

 alter table REPOUSER.T_CONNECTOR modify BTM_MID_LABEL varchar2(60) ;

...或者您认为足够大的任何值。

于 2013-03-25T15:41:32.193 回答