2017-11-03 51 views
0

WM_CONCATを使用して結果をグループ化するビューを作成しました。これはwm_concat(DISTINCT complies)で、エラーなしで円滑にDBで実行されます。ORA-22922:存在しないLOB値

しかし、私がDjangoアプリに入れようとすると、models, views, tablesを使用するとエラーORA-22922: nonexistent LOB valueが返されます。

私はlistagg(complies, ',') WITHIN GROUP (ORDER BY code) complies,を使ってみましたが、それは私にDBエラーresult of string concatenation is too longを与えます。

WM_CONCATはOracleではサポートされていませんが、これまでに正常に使用しています。 uwsgi

ステータスはdjango.db.utils.DatabaseError: ORA-22922:

が、これはDBの修正やDjangoは修正していると言い、そしてあなたはそれをどのように修正するのですか?

+0

「wm_concat」関数は、文書化されておらず、Oracle 8i回の回避策として検出されているので、避けなければなりません。 'Django'は' Oracle'とは何の関係もありません。エラーは静かで、「文字列連結の結果が長すぎます」という結果は連結の結果が4000文字を超えていることを意味します。 'substr'を実行して4k文字を選択することができます – XING

+0

@XINGはい、私は前もって' wm_concat'を使っていました。 'LISTAGG'を使用すると' string連結の結果が長すぎます 'というエラーが発生しますが、 'wm_concat'を使用するとエラーは発生しません。 'PLSQL'でエラーなく実行されますが、' Django'の 'models'から呼び出すと、エラーとなります:ORA-22922:存在しないLOB値'なぜ起こっているのか分かりません。 – kej

答えて

0

問題を修正できました。 SELECT全体を別のSELECTにラップし、すでにWM_CONCATを使用していた列でLISTAGGを使用しました。

結果は問題なく表示されます。

関連する問題