[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. 年度の求め方と年度の上期、下期を求める。 (さらに…)…
  2. 割り算に必須な0除算回避 (さらに…)…
  3. ビューの定義を検索して、ビューで参照しているテーブルまたはビューを探す (さらに……
  4. いまの時代、一つの企業に就職してそこで定年を迎えるというのはまれです。 しかし、それが一番いいと私…
  5. ビューの作り方、ANSI_NULLS、QUOTED_IDENTIFIER、WITH(NOLOCK) …

カテゴリー

[スポンサードリンク]




ページ上部へ戻る