- PR -

InformixのSQL文字制限

投稿者投稿内容
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-09-24 14:12
ODBC + Informixの環境で、
SQL文にて、クエリをとってきたいのですが、以下のような文を
ODBC関数SQLEXECDIRECTにて行っても、Syntax errorが帰ってきてしまいます。

SELECT department_id,
MIN(CASE WHEN department_name = 'Administration'
THEN manager_id ELSE NULL END)
RAdministration
, MIN(CASE WHEN department_name = 'Construction'
THEN manager_id ELSE NULL END)
RConstruction
, MIN(CASE WHEN department_name = 'Contracting'
THEN manager_id ELSE NULL END)
RContracting
, MIN(CASE WHEN department_name = 'Government Sales'
THEN manager_id ELSE NULL END)
RGovernment Sales
, MIN(CASE WHEN department_name = 'IT Helpdesk'
THEN manager_id ELSE NULL END)
RIT Helpdesk
, MIN(CASE WHEN department_name = 'IT Support'
THEN manager_id ELSE NULL END)
RIT Support
, MIN(CASE WHEN department_name = 'Manufacturing'
THEN manager_id ELSE NULL END)
RManufacturing
, MIN(CASE WHEN department_name = 'Marketing'
THEN manager_id ELSE NULL END)
RMarketing
, MIN(CASE WHEN department_name = 'NOC'
THEN manager_id ELSE NULL END)
RNOC
, MIN(CASE WHEN department_name = 'Operations'
THEN manager_id ELSE NULL END)
ROperations
, MIN(CASE WHEN department_name = 'Payroll'
THEN manager_id ELSE NULL END)
RPayroll
FROM TMP1 GROUP BY department_id


ただし、この場合、MINで作った列が3つまでならクエリをとってくることができました。
Informixの場合、SQLに文字列制限があるとすればそれは相当短いのでしょうか。
ちなみに、上記はDBACCESSでやろうとすると、バッファが足りないというエラーで
実行できませんでした。

もし、SQL文に制限があるのならばどれくらいなのか知ってらっしゃる方
教えてください。
たあー
会議室デビュー日: 2003/01/23
投稿数: 6
投稿日時: 2004-09-27 12:37
RGovernment Sales とか RIT Helpdesk 別名表示に使っていると思いますが、
RGovernment_Sales とか RIT_Helpdesk にすればエラーにならないと思いますが。。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-09-29 19:49
いや、そうではないと思います。
その別名の列をアンダーバーにするかしないかにかかわらず、
使えますが、そうではなくてSQL文が1024BYTEしか使えないのが問題です。

そのために、環境設定が必要だと思うのですが、どうすればいいでしょうか。
たあー
会議室デビュー日: 2003/01/23
投稿数: 6
投稿日時: 2004-09-30 09:34
Informix は何をお使いなのでしょうか?
Informix Dynamic Server
Informix OnLine
後はInformix SE のどれかと思いますが・・・・。

Informix Dynamic Server V9 で試してみましたが列の別名でエラーになりました。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-09-30 09:44
IDSは今はV9.3を使っています。

GLSの設定などSetnet32をうまく使えばいいんでしょうか。
たあー
会議室デビュー日: 2003/01/23
投稿数: 6
投稿日時: 2004-10-01 09:45
1024Byteの制限って効いたことは無いですが
それぞれ利用しているバージョンを教えて下さい。
IDS9.3 OSは
I-Connect 及び ODBC のバージョン及びOS
環境情報をもう少し教えてください。

現在入手できる最新は I-Connect 2.81TC3 ODBC3.82TC3です。
IIUGの情報を見るとODBC 3.34に1024のバグが有るみたいです。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-10-01 10:03
お返事ありがとうございます。

ODBCドライバですが、IBM INFORMIX3.82 32BIT
です。

インストールしたクライアント製品はIBM INFORMIX Client SDK2.81です。

症状は長いSQL文をODBC関数のSQLEXECDIRECTにて使うと、Syntax error occuredが出てしまうことです。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2004-10-01 10:06
OS環境ですが、INFORMIXv93のOSはsolaris5.8です。
クライアントはWINXP PROです。

スキルアップ/キャリアアップ(JOB@IT)