0

次のエラーが発生します:AeSymResolveStatement [775] ...ステートメント(108,512)の位置34338またはその近くでのメタSQLエラー。SQLステートメント自体は40,000文字を超える長さであるため、質問があります。

DBはオラクルです。ツール8.49.24で実行しています。

4

4 に答える 4

2

アプリケーション エンジン (SQL ステップ) で使用される SQL のサイズに制限があることを知っています。以前、アプリケーション エンジンで非常に長い SQL を使用しようとしたときに、同様のエラーを受け取ったことがあります。

同じ制限が SQL オブジェクトに適用されても驚かないでしょう。

この問題を解決するために、SQL を 2 つに分割することができました (更新ステートメントでした)。うまくいけば、それはあなたの場合にも可能です。

于 2010-09-28T09:18:43.263 に答える
1

PeopleCodeには制限がありますが、これは主に文字列の長さの制限によるものですが、保存されているSQLステートメントの制限は見つかりませんでした。

于 2009-12-21T21:51:31.727 に答える
1

そのような制限はありません。

次のようなSQLを作成することで、これを自分で確認できます。

select 'x' from PS_INSTALLATION where 
      1 = 1 and 
      1 = 1 and
      1 = 1 and
      1 = 1 and
      /* ... copy paste '1 = 1 and' 90000 times or so times more */
      1 = 1

pside は非常に遅くなりますが、保存と検証は問題なく実行されます。

于 2009-12-10T08:50:42.667 に答える
0

個人的には、ステートメントを何らかの方法で細かく分割することを検討します。

あなたは出来る:

  • AppEngineに組み込まれているループメカニズムを使用する
  • SQLとPeopleCodeを組み合わせて使用​​する
  • 一時テーブルを使用して中間SQLを実行し、一時テーブルに格納します

データベースに心臓発作を与えることは別として、SQLモニターでステートメントを見たときにDBAに言及することはありません。ステートメントをもう一度見なければならない場合、あなたは自分自身を苦痛の世界から救っています。

App EngineのSQLはlongとして保存されると思うので、Oracleでは4GBになり、DB2でも同様に巨大になります。

于 2013-03-18T17:28:47.587 に答える