Database Sparx企业架构师Oracle XE存储库:将列宽增加到50个字符以上

Database Sparx企业架构师Oracle XE存储库:将列宽增加到50个字符以上,database,oracle,repository,enterprise-architect,Database,Oracle,Repository,Enterprise Architect,我们正在使用SparxEnterpriseArchitect(EA 9.2)和数据库支持的存储库(OracleXe11,使用WindowsOLE/ODBC驱动程序)。我们所有人都在使用32位Windows Vista 导入模型时,我们反复遇到以下EA错误: OraOLEDB ORA-12899: value too large for column "REPOUSER"."T_CONNECTOR"."BTM_MID_LABEL" (actual: 52, maximum: 50) 似乎创

我们正在使用SparxEnterpriseArchitect(EA 9.2)和数据库支持的存储库(OracleXe11,使用WindowsOLE/ODBC驱动程序)。我们所有人都在使用32位Windows Vista

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

OraOLEDB
ORA-12899: value too large for column "REPOUSER"."T_CONNECTOR"."BTM_MID_LABEL" 
  (actual: 52, maximum: 50)
似乎创建的某些列的宽度仅为50个字符。我想增加这个尺寸。因此,问题是:

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


    MiKu

    要回答yopur问题中的Oracle部分,拓宽列很容易。Oracle允许我们增加列大小,即使它们包含数据。(如果要减小列的大小,则情况并非如此:然后必须处理空列并重新填充数据。)

    所以语法是:

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

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

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

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

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

  • 如果清除数据库中的TOP_MID_LABEL字段,当企业架构师再次加载图表时,它将动态地用元素名称填充它(如果该字段为空)

  • 我相信Sparx系统的开发人员在工作中有一种更干净的方法来处理这个问题,因此了解他们,在不久的将来可能会有一些东西可用