[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. C#でSQL Serverから値を取得するには、System.Data.SqlClientクラスを使…
  2. 例えば、商品の色が登録されているもの、登録されていないものなどを取得する場合 (さらに&hell…
  3. 本記事ではXMLからSQLを取得し、SQLiteで実行する。プリペアードステートメントを使用する。 …
  4. MacにEclipseをインストールする方法のまとめ (さらに…)…
  5. ビューの作り方、ANSI_NULLS、QUOTED_IDENTIFIER、WITH(NOLOCK) …

カテゴリー

[スポンサードリンク]




ページ上部へ戻る