3

abapの文字列型の欠点は何ですか? いつ使用し、いつ使用しないのですか?

例: 0 から 12 文字の範囲の値を保存する必要があるテキスト フィールドがあります。文字列または Char(12) を使用する方がよいでしょうか?

ありがとう!

4

5 に答える 5

7

char は静的に割り当てられますが、文字列は文字の動的配列として格納されます。

文字列の欠点には次のようなものがあります。

  • オーバーヘッド - それらは動的であるため、実際の文字列に加えて長さを格納する必要があります。
  • サブストリング演算子とオフセット演算子は、文字列では機能しません。
  • 文字列を翻訳可能なテキスト要素に変換することはできません。

char(x)したがって、あなたの質問に答えるために、文字列は、静的変数の潜在的な無駄なスペースに比べて追加のオーバーヘッドが無視できる範囲の長さのかなり長い値にのみ使用する必要があります。

于 2010-10-01T17:07:00.503 に答える
2

フィールドが 0 ~ 12 文字のみを保持する必要があることを 100% 確信しているため、CHAR が最適だと思います。

于 2013-05-08T08:26:50.890 に答える
1

string は可変長のデータ型ですが、char では長さを定義する必要があります.. タイプ C(テキスト フィールド (英数字)) と String X または 16 進文字列には初期値 (X'0 … 0') があります。初期値を回避し、実際の長さを使用するにはC型が使用されます

于 2013-11-29T10:45:14.377 に答える
0

文字列変数 : 文字列は、任意の長さのデータを格納するために使用される可変長データ型です。スペースを節約するため、可変長フィールドが使用されます。文字列。任意の数の文字を格納できます。文字列は実行時にメモリを割り当てます。これは動的メモリ割り当てとも呼ばれ、文字列のサイズに従ってメモリを割り当てます。割り当てのメモリは動的であるため、パラメーターを使用して文字列を宣言することはできません。

しかし、あなたのケースでは、フィールドの最大長(0〜12文字)をすでに知っているので、CHAR typeあなたのケースでの使用に最適です。STRING通常、可変長データまたは long 値に使用される型。

続きを読む

于 2013-11-29T12:24:16.913 に答える