タイプVARCHAR(MAX)のパラメーターを受け入れるSQLストアード・プロシージャーがあります。私が知る限り、そして私が読んだすべてによれば、そのような文字列の最大サイズは2GBです: [〜#〜] msdn [〜#〜]
何らかの理由で、8KBより大きい文字列を渡すと、次のようになります。
文字列型やバイナリは省略されます。
このエラーメッセージが表示されるのはなぜですか?どうすれば解決できますか?
BoL(指定したリンク)によると、解釈に違いがあります。クエリで使用できる最大量(n部)は8000です。ストレージの目的で、varchar(max)はディスク上の2GBを処理できます。
これは、クエリと格納を目的としたデータ型の解釈にすぎません。つまり、クエリでは8000文字しか使用できません。
この問題を回避するには、最初に文字列をvarchar(max)
にキャストする必要があります。
column = cast(other_column as varchar(max))
このようにして、max(バージョンによっては8000または4000)より長い文字列は、最大長に切り捨てられます。
文字列biggerをデータベースの列よりも渡していますよね?列のサイズを大きくしてみてください。
データベースのstringより大きいstringを渡しています。
あなたのデータベーステーブルのように次のとおりです:
EXECUTIVE varchar(15)
しかし、(vb.net)のような挿入文字列:
cmd.Parameters.Add("@EXECUTIVE", Data.SqlDbType.VarChar, 150).Value = CmbExecutive.Text.ToString()