2011-07-01 5 views
0

文字列を使用すると、Sybaseの中の文字列ですべて充填スペースを保存するが、それは私が意味「空白埋める」をものについて誤解していない限り、私は(見てい動作ではありませんということthis question主張に受け入れ答え)。例えば、私は次のスクリプトを実行する場合:Sybaseは、右トリムしないストリング・タイプをサポートしていますか?

[NULL]   - [NULL] 
[single space] - 1 
[single space] - 1 
[single space] - 1 
blah    - 4 
blah    - 4 
blah    - 4 
[four spaces]blah - 8 

末尾のスペースを取り除きへのSybaseを得ることはありませする方法があります:私は次の出力を得る

create table #check_strings 
(
    value char(20) null 
) 

insert into #check_strings values (null) 
insert into #check_strings values ('') 
insert into #check_strings values (' ') 
insert into #check_strings values ('  ') 
insert into #check_strings values ('blah') 
insert into #check_strings values ('blah ') 
insert into #check_strings values ('blah ') 
insert into #check_strings values (' blah ') 

select value, len(value) from #check_strings 

を?さらに、空の文字列を空の文字列として保存する方法はありますか?単一のスペースではありませんか?

私はSybase 15.5を使用しています。 「あなたがchar、unichar型、またはNULLを可能にNCHAR列を作成すると、Adaptive Serverはvarchar型、UNIVARCHAR、またはnvarchar型の列に変換し、それらのデータ型のストレージ・ルールを使用しています。」

答えて

1

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sqlug/html/sqlug/sqlug208.htm

を参照してください。

ヌル列をチェックしてください。

+0

ありがとうございました。 not nullの設定で動作しますが、問題は、常に長さ20の文字列を返します(空文字列を挿入し、selectに20スペースを返します)。これは容認できる解決策ではありません。 Varcharはやり方ですが、私が挿入しているデータを変更するこの動作は、Sybaseではかなり厄介な動作です。 –

+0

ある時間前、私は同じケースで常に最後に1文字を追加しなければなりませんでした。もちろん、クライアント側でこの最後の文字を削除する必要がありました。これは最高のことではありませんが、私の場合にはうまくいきます。 – kolchanov

2

charカラムで固定長を使用するには、not null属性を使用する必要があります。

可変長の列の場合は、null属性のvarcharまたはcharを使用します。その後datalength機能しませlen機能もcharlength機能を使用し、実際のデータのサイズを測定する

関連する問題