アプリ版:「スタンプのみでお礼する」機能のリリースについて

varcharでサイズを8000にしたフィールドに1000文字(例えば’aaa・・・「a」を1000文字・・・’)INSERTした後にそのフィールドをSELECTすると256文字しか入っていません。どうしてなんでしょうか?

SELECT、INSERTなどのSQLの実行は”クエリ アナライザ”や”SQL Server Enterprise Manager”で試しました。

SQLServer初心者です。何卒宜しくお願い致します。

A 回答 (2件)

使用しているツールの側で、文字列の受け取りバッファの大きさを256文字分しか用意していないのかもしれません。



そのvarcharフィールドに対して

SELECT LEN(そのフィールド) FROM テーブル

を実行すると、そのフィールドの中の文字列の長さが返りますが、それも256でしょうか。

もし上記SELECTの結果が256ではない(もっと大きい)場合は、256文字しか表示されないのはツール側の受け取りバッファが小さいだけで、実際に記録されている文字列はもっと長いということになります。

#SQL Server 6.5までvarcharの長さは255文字までに制限されていましたが、SQL Server 7.0以降ではvarcharの長さは8000文字まで使用できます。
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。

早速「SELECT LEN・・・」を試したところ256以上の数字(実際にINSERTしたデータ長)が表示されました(SQL Serverのバージョンは8.0)。

そこで社内の凄腕プログラマに相談して色々試したところ以下のような結果になりました。

●SQL クエリ アナライザ ・・・ 256まで
●Borland SQL Explorer ・・・ 256以上(入力したデータ長)
●Access(ODBC経由)・・・ 256以上

ツール側の問題のようです。

お礼日時:2005/09/22 10:13

varchar型は最大255バイトです。

それ以上必要な場合は、image型かtext型を使用しますが、いろいろと制限もあります。
用途によりますが、大きなデータを管理する必要があるのであれば、ファイルパス名のみ格納し、実態はファイルをアクセスするなどの工夫も必要です。

この回答への補足

ご回答ありがとうございます。

http://www.microsoft.com/japan/msdn/library/defa …
には「varcharは8000文字以内の可変長・・・」とあり日本語文字列を入れても3000~4000文字は入るのではないかと思ったのですが、意味が違うのでしょうか?それともこのリファレンスを参考にすることが全くの見当違いなのでしょうか?

再質問で申し訳ありませんが宜しくお願い致します。

補足日時:2005/09/21 22:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す