IBM DB2 데이터 서버 드라이버 (ODBC) (v10.1) 및 ibm_db (v10.1)를 사용하여 django (v1.3.1)에서 IDS (v11.50) https://code.google.com/p/ibm-db/). 나는이 db2cli에 동일한 SQL 문을 실행하려고Django, Informix, ibm_db 및 DB2 데이터 서버 드라이버
[IBM][CLI Driver][IDS/UNIX64] A syntax error has occurred.
하고,이 같은 오류 반환 :
>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"
에 드라이버 전송에 장고에서 'adm_audit 구별 adm_audit.action을 선택'하고 오류를 생성 같은 간단한 쿼리 따옴표가 제거되면
, 문이 성공적으로 완료 :
> 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.
아누 제안? 감사합니다.
문제가 해결되었습니다.
ibm_db_django에서1) DELIMIDENT 변수
2)의 변화 -> operation.py 약 176 줄 문자열
"name = upper(name)"
"name = lower(name)"
(수입` 문자열 클래스에서 'lower')
당신이'dbaccess' 같은 인포믹스 도구에서 같은 쿼리를 실행할 수 있습니까에 대한 지원 inspectdb합니까? –
같은 결과입니다. '201 : 구별 오류가 발생했습니다 .'''distinct를 선택하십시오. "adm_audit". "action"from "adm_audit"'.Symems, 이것은 ibm_db 문제입니다. – TheROX
기본적으로 Informix는 문자열 주위에'''과'''따옴표를 모두 인식합니다 (물론 양쪽 끝에서 동일해야합니다). 따옴표로 묶은 문자열을 구분 된 식별자로 인식하려면, DELIMIDENT 환경 변수 또는 API의 연결 문자열에 해당하는 설정으로 변경하십시오. 세션이 진행되면 설정을 변경할 수 없습니다. –