私はついにUNECEWebサイトの情報をUN/EDIFACTルールパート4のドキュメントで見つけました。UN/EDIFACTルール第2.2章構文ルール。彼らはそれを直接言うことはありませんが、あなたがすべての部品をまとめると、あなたはそれを手に入れます。TOCエントリ10:数値データ要素値の表現を参照してください。
基本的には次のようになります。
10.1:小数点マーク
UNAで指定されているように(必要に応じて)小数点マークを送信する必要があります(コンマまたはポイント、常に1文字を入力)。データ要素の最大フィールド長を計算するときに、値の文字としてカウントされないものとします。
10.2:トライアド
セパレータートライアドセパレーターを交換して使用してはなりません。
10.3:符号
[...]値が負であると示される場合、送信の直前にマイナス記号(例:-112)を付ける必要があります。マイナス記号は、データ要素の最大フィールド長を計算するときに値の文字としてカウントされないものとします。ただし、送受信のキャラクターには余裕が必要です。
まとめると
、数字自体を除いて、数値フィールドに使用できる文字は、10進数の区切り文字とマイナス記号の2つ(オプション)のみです(どの文字の間にブランクも使用できません)。これらの2つの余分な文字は、フィールドの値の最大長に対してカウントされません。
したがって、数値フィールドの最大文字数は、数値フィールドの最大長に2を加えたものです。データベースで、として指定されたフィールドで送信されるすべての構文的に正しい値を格納できるようにするにはn..17
、列を19文字にする必要があります。長い(のようなものvarchar(19)
)。指定されたフィールドに19文字を超える値を持つすべてのEDIFACTメッセージは、n..17
すでに構文的に間違っており、拒否される可能性があるため、セマンティックチェックのためにDBに格納する必要はありません。