2

IBM DB2 Data Server Driver(ODBC)(v10.1)とibm_db( https://code.google.com/p/ibm)を使用して、django(v1.3.1)からIDS(v11.50)に接続しようとしています。 -db /)。'selectdistinct adm_audit.action from adm_audit' from djangoからdriverへの転送のような単純なクエリは、select distinct "adm_audit"."action" from "adm_audit"エラーを生成します。

[IBM][CLI Driver][IDS/UNIX64] A syntax error has occurred.

db2cliで同じSQLステートメントを実行しようとしましたが、同じエラーが返されます。

    >select distinct "adm_audit"."action" from "adm_audit"
    select distinct "adm_audit"."action" from "adm_audit"
    SQLError: rc = 0 (SQL_SUCCESS)
    SQLGetDiagRec: SQLState     : 42000
              fNativeError : -201
              szErrorMsg   : [IBM][CLI Driver][IDS/UNIX64] A syntax error has occurred.
              cbErrorMsg   : 58

引用符が削除されると、ステートメントは正常に完了します。

    > select distinct adm_audit.action from adm_audit
    select distinct adm_audit.action from adm_audit
    FetchAll:  Columns: 1
      action
       ...results...
    FetchAll: 13 rows fetched.

アヌの提案?助けに感謝します。

問題が解決しました。

1)DELIMIDENT変数

2)ibm_db_django-> operation.pyから176行、文字列を変更します

"name = upper( name )"

"name = lower( name )"

(そして文字列クラスから `lower'をインポートします)

4

2 に答える 2

1

DELIMIDENT二重引用符の使用を制御できる環境変数があります。y区切られたSQL識別子の周囲でのみ使用するように設定します。

詳細: http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic = / com.ibm.sqls.doc / sqls1077.htm

ODBCとJDBCでテストしましたが、同じように機能しますSELECT * FROM "aaa"

  • 設定なしDELIMIDENT、デフォルトありDELIMIDENT=n:エラー
  • DELIMIDENT=yセットあり:クエリは機能します
于 2013-03-04T13:35:21.880 に答える
0

Informix用のibm_db_djangoを少しいじりました。

結果はここで見つけることができます:https ://github.com/nutztherookie/ibm_db_django

完璧ではありませんが、たとえばinspectdbをサポートしています:)

于 2014-07-02T12:34:25.660 に答える