uCosminexus DocumentBroker Version 5 メッセージ

[目次][索引][前へ][次へ]

3.1.5 そのほかのエラー


Error 9001

構文解析用のスタックがオーバーフローしました。
The stack for syntax analysis has overflowed.

説明
構文解析用の作業領域が制限値に達しました。
または,制限値に達してはいませんが,データベースの制限値を超えました。
edmSQL文が複雑過ぎるため,構文が解析できません。単純な構文に変更してください。
構文が複雑になる要素としては,次のようなものが考えられます。
  • 副問い合わせのネストが深い
  • 演算子の入れ子指定が多い
  • 演算順序を指定する括弧の数が多い
複雑な構文のedmSQL文を指定すると,検索処理性能も低下するおそれがあります。
単純な構文にするためには,次のような点を考慮してください。
  • 演算順序を考慮して,式をまとめる括弧を外す
  • 処理が再帰しないようにする
次に,複雑なedmSQL文を単純にする例を示します。
複雑なedmSQL文の例
SELECT  myProp_Foo
FROM    myClass
WHERE   (((myProp_Foo1 = 1)
            AND (myProp_Foo2 = 2))
                 AND (myProp_Foo3 = 3))
単純なedmSQL文に置き換えた例
SELECT  myProp_Foo
FROM    myClass
WHERE   myProp_Foo1 = 1
          AND  myProp_Foo2 = 2
               AND  myProp_Foo3 = 3
このように,不要な括弧を外して構文を単純にすることで,スタックの消費量は少なくできます。