[SQL Server]メッセージ8729エラー

[スポンサードリンク]

メッセージ 8729、レベル 16、状態 1、行 22

SQL Serverでまれに出るエラーで、こういうものがある。

メッセージ内容

メッセージ 8729、レベル 16、状態 1、行 22
RANGE ウィンドウ フレームの ORDER BY リストの合計サイズは 8000 バイトです。サポートされている最大サイズは 900 バイトです。

発生場所

このようなエラーメッセージが出る場合は、ORDER BY句で指定した、列の桁数を疑ってみるといい。

これは、製品の入荷個数の累計を求めるコードだが、ORDER BY 句に指定した年月日に問題があることをエラーメッセージが指摘している。

原因

そこで、調べたところ。
年月日を表す列「YMD」が設定されている桁数は4000桁であった。
しかも、データ型はnvarcharで、2全角文字が1桁2バイトなので4000桁だとすると8000バイトが必要で、エラーメッセージの数値通りである。

blg2

今回仕事で、データベースの設定をミスってしまったのはわかるが、仕様変更の申請はややこしいので、SQL側で対応することにした。

対応策

年月日に格納されるデータは「20160725」のように8桁であるため、CAST関数で8ケタに変換する。

[スポンサードリンク]

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. SQLServer SELECT文で連番を振る(項目ごとの連番・通し連番) (さらに&helli…
  2. SQL Server認証ができるようにする設定方法 (さらに…)…
  3. C#でSQL Serverから値を取得するには、System.Data.SqlClientクラスを使…
  4. 例えば、あなたが中途採用で企業の求人に応募した際の話。 (さらに…)…
  5. コンボボックスで「全て」が選択された場合に、NULLの行も取得したい場合。 (さらに&helli…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る