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 が拡張文字範囲を処理する方法が原因です。

これを回避するには、他に 3 つのオプションがあります。 1. 問題のコネクタが Stateflow の場合は、Enterprise Architect のプロジェクト データ整合性チェックを実行します: Project -> Data Management -> Project Integrity Check

  1. StateFlow でない場合は、Oracle NLS_LENGTH_SEMANTICS ='CHAR'; でオプションを設定してみてください。ただし、最初に非本番データベースでこれをテストします!!

  2. データベースの TOP_MID_LABEL フィールドを消去すると、Enterprise Architect が再度ダイアグラムをロードしたときに、ダイアグラムに要素名が動的に入力されます (フィールドが空の場合)。

私は、Sparx Systems の開発者が作業中にこれを処理するためのよりクリーンな方法を持っていると信じています。

于 2015-03-18T01:30:49.460 に答える
0

yopur の質問のオラクルの部分に答えるには、列を広げるのは簡単です。Oracle では、列にデータが含まれている場合でも、列のサイズを増やすことができます。(これは、列のサイズを小さくしたい場合には当てはまりません。その場合、空の列を操作してデータを再入力する必要があります。)

したがって、構文は次のとおりです。

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

...または十分に大きいと思われる値。

于 2013-03-25T15:41:32.193 に答える