[pgsql-jp: 36643] C言語埋め込みでのFETCHエラー

Kazuki Funaki k.funaki @ jp.fujitsu.com
2006年 1月 19日 (木) 13:40:16 JST


こんにちは.船木と申します.

 ecpgを利用してC言語埋め込みSQLで開発しています.
 以下のSQL文で検索を行うと,CURSORのFETCHで,次のようなエラーとなります.
 SQL : select id from rbxtitle where rbxtitle.keywd='研究';

 PQerrorMessage : could not receive data from server: No such file or directory

 しかし,以下のSQL文では,検索可能です.
 SQL : select id from rbxtitle where rbxtitle.keywd='ラボラトリ';

 それぞれ,PQtraceで通信トレースを確認したところ,以下の違いがありました.
「研究」では,セッションが切断されるのでしょうか.

【「研究」の場合】
:
To backend> DECLARE wkcur CURSOR FOR select id from rbxtitle where rbxtitle.keyw
d='研究';
>From backend> C
>From backend> "DECLARE"
>From backend> Z
>From backend> Z
To backend> Q
To backend> FETCH ALL in wkcur
>From backend> P
>From backend> "wkcur"
>From backend> T
>From backend (#2)> 1
>From backend> "id"
>From backend (#4)> 25
>From backend (#2)> 65535
>From backend (#4)> -1
>From backend> D
>From backend (1)> \200
>From backend (#4)> 210070
>From backend> D
:

【「ラボラトリ」の場合】
:
To backend> DECLARE wkcur CURSOR FOR select id from rbxtitle where rbxtitle.keyw
d='ラボラトリ';
>From backend> N
>From backend> "NOTICE:  Closing pre-existing portal "wkcur"
"
>From backend> C
>From backend> "DECLARE"
>From backend> Z
>From backend> Z
To backend> Q
To backend> FETCH ALL in wkcur
>From backend> P
>From backend> "wkcur"
>From backend> T
>From backend (#2)> 1
>From backend> "id"
>From backend (#4)> 25
>From backend (#2)> 65535
>From backend (#4)> -1
>From backend> D
>From backend (1)> \200
>From backend (#4)> 179
:

 環境は次の通りです.
 OS:SunOS 5.8
 PostgreSQL:7.2.8

 Linuxでは,動作しています.回避方法をご存知の方がいらっしゃい
ましたらご教授下さい.

以上,よろしくお願い致します.





pgsql-jp メーリングリストの案内