[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. SQL Server認証ができるようにする設定方法 (さらに…)…
  2. SSRSのデータセットにクエリが貼り付けられない場合 (さらに…)…
  3. C言語のprintf関数でよく用いられるエスケープシーケンスを表すバックスラッシュ「\」の入力方法は…
  4. あいまい検索での否定 ○○以外の書き方 あいまい検索での否定は「[^任意の文字・文字列]…
  5. 本記事ではXMLからSQLを取得し、SQLiteで実行する。プリペアードステートメントを使用する。 …

カテゴリー

[スポンサードリンク]




ページ上部へ戻る