- PR -

文字列型 textについて

1
投稿者投稿内容
hana
ベテラン
会議室デビュー日: 2003/02/08
投稿数: 70
投稿日時: 2005-07-11 19:46
WindowsXP SP2
MSSQLServer2000

こんにちわ。

ストアドプロシージャの引数として、
半角10000以上の文字列を受け取りたいと思っています。
varcharが使用できないので、
textを使用したいと思ったのですが、
「引数のデータ型textはleft関数では無効です」
のエラーが出てしまい、使用することができません。

text型の文字列にはleft関数は使用できないのでしょうか。
ヘルプ等いろいろ調べてみましたが、
そのような記述を見つけることができませんでした。

どなたか、対処法を教えて頂けないでしょうか。
よろしくお願いします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-07-11 20:08
hanaさん、こんばんは。

引用:

text型の文字列にはleft関数は使用できないのでしょうか。
ヘルプ等いろいろ調べてみましたが、
そのような記述を見つけることができませんでした。



SQL Server Books Online (アップデート SP3)の「Transact-SQL リファレンス」で LEFT 関数について調べると、

引用:

文字またはバイナリ データの式を指定します。character_expression は、定数、変数、または列でもかまいません。ただし、character_expression は、varchar または nvarchar に暗黙的に変換できる任意のデータ型を (text または ntext を除く) 指定できます。それ以外は、CAST 関数を使用して、明示的に character_expression を変換します。


という記述があります。Books Online を最新版にしましょう。

hana
ベテラン
会議室デビュー日: 2003/02/08
投稿数: 70
投稿日時: 2005-07-11 20:51
きくちゃんさん。
早速の返信ありがとうございました。

Books onlineを最新にして、left関数を確認してみました。
確かに記述がありました。ありがとうございます。

varcharでは収まりきらない文字列データを引数として受け渡す場合、
どのように対処しておられるのでしょうか。

本件では、さらにローカル変数にもこの引数の値を渡さねばならなかったため、
苦戦しております。
(ローカル変数ではtext型を宣言することが出来ないため)
ただデータを抽出するだけだったらsubstringを使用することも考えたのですが。。。

ご教授よろしくお願いします。



[ メッセージ編集済み 編集者: hana 編集日時 2005-07-11 20:54 ]
1

スキルアップ/キャリアアップ(JOB@IT)