[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. ビューの作り方、ANSI_NULLS、QUOTED_IDENTIFIER、WITH(NOLOCK) …
  2. Oracle 12cではCDBとPDBの概念があるため、それより前のバージョンの様にログインすると、…
  3. NPOIを使ってExcelの読み書きをする方法 (さらに…)…
  4. SSRSのデータセットにクエリが貼り付けられない場合 (さらに…)…
  5. C#でSQL Serverから値を取得するには、System.Data.SqlClientクラスを使…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る