web-dev-qa-db-ja.com

Oracle DBで2499文字を超えるエラーをオーバーライドする方法

シェルスクリプトを介して実行しているOracleクエリがあり、クエリが最大長の2499を超えています。

エラーが発生します

SP2-0027:入力IS長すぎる(> 2499文字)-行は無視されます

5
user9185088

SQL * Plusの行の長さの制限を回避するためのいくつかのオプションを次に示します。

  1. 12.2(?)クライアントにアップグレードします。 12.2では、クライアントで最大4999文字を使用できます。どちらかが腹立たしいです-オラクルが最終的に2499では十分でないことを認めた場合、なぜ彼らは制限を4999に増やすだけでしたか?
  2. 改行を追加します。結果を複数の行に分割します。 Windowsを使用している場合は、必ず改行と改行の両方を使用してください-chr(13)||chr(10)
  3. 別のプログラムを使用します。多くのプログラムには、SQL * Plusのようなオプションがあります。一般的に、SQL * Plusクローンを使用することをお勧めします。 SQL * Plusの主な利点は、シンプルなツールであり、どこでもほぼ同じように機能することです。 SQL * Plusクローンは完全に互換性がなく、クローンでSQL * Plusスクリプトを実行すると、多くのプログラムが壊れます。
9
Jon Heller

実際の問題は、入力SQLテキスト自体が長すぎる、1行が2500文字を超える、データベース内のデータについてではない、ということです。エラーを回避するには、@ Jon Hellerの手順に従ってください

1
Decula

その中のどこかに改行を追加してみてください長い行;これはSQL * Plusの制限であり、私が知る限り、(SET LINESIZE 100などの)設定によっては回避できません。

0
Littlefoot