私はsybaseでこの問題に直面しています。
update tst_table set col1 = 'abc '
結果は
abc
Sybase は自動的にスペースを削除します。ただし、移行中なので、スペースを手動で追加することはできません。
tst_table.col1
varchar 型から char 型に変更する必要があります。Varchar は常にスペースを切り捨てますが、char はすべてのギャップにスペースを残します (たとえばabc
、2 つのスペースを含む文字列)。type を使用text
して、スペースを含む文字列全体を格納することもできます。
TYPE VALUE
-------------------------
varchar(10) 'abc'
char(10) 'abc ' <----------- 3 chars abc + 7 spaces
text 'abc '
以下のコードは、列のデータ型を char(10) に変更します
alter table tst_table
modify col1 char(10) null
ドキュメントが言ったように
列を text または image データ型に変更することはできません。
もう1つの解決策は、リバース機能を使用することです。たとえば、テーブルがありますtab
:
create table tab
(
var varchar(100)
)
挿入データは次のようになります。
insert into tab
select reverse('abc ')
選択すると
select var from tab
データが
' cba'
このようなデータを取る必要があります
select reverse(var) from tab
ただし、のような文字列に対してのみ機能します'abc '
が、文字列' abc'
および ' abc '
.
影響を受ける列のデータ型を、予期した方法でスペースを処理するものに変更する必要がある場合があります。
ここでは、さまざまなデータ型が末尾のスペースを処理する方法について詳しく説明します。