ホーム › フォーラム › A5:SQL Mk-2掲示板 › Unexpected server response のエラー
- このトピックは空です。
-
投稿者投稿
-
サトルゲスト
A5:SQLM2で自作のSQLを実行したところ、実行できず、
Unexpected server response
という表示が出て、それ以降はどんなSQLを実行してもこの表示が出るようになりました。
A5を立ち上げ直しても直らないです。かなり前に同様の質問があったと思いますが、解決しているのでしょうか?
解決策があったら教えてください。よろしくお願いします。サトルゲストすいません。書き忘れました。
データベースはPostgreSQLです。
よろしくお願いします。サトルゲスト追伸です。素晴らしいソフトをありがとうございます。とてもありがたく使わせていただいております。
失礼にあたったらすいません。原因となったSQLに原因があるとすれば、それを載せないと何もわからないんじゃないかと考えて、載せることにします。JRA_VANのデータを使い、競走馬のクラス分けをするためのSQLです。以下のようなものです。CREATE OR REPLACE FUNCTION public.sfc_to_name_class_group(keibajo_code character varying(2),kyoso_shubetsu_code character varying(2),grade_code character varying(1), kyoso_joken_code character varying(3), kyoso_kigo_code character varying(3), kyosomei_ryakusho_6 character varying(12))
RETURNS character varying
LANGUAGE plpgsql
AS $function$/**
*
*
*/BEGIN
IF (keibajo_code BETWEEN ’30’ AND ’61’) THEN
IF grade_code IN (‘A’,’B’) THEN
IF kyosomei_ryakusho_6 IN (‘東京大賞典(‘, ‘マイルChS ‘, ‘JBCクラシ’) THEN
RETURN ‘G1特2’;
ELSE
RETURN ‘地方G12’;
END IF;
ELSE
RETURN ‘地方’;
END IF;
ELSIF (keibajo_code BETWEEN ’01’ AND ’10’) THEN
IF grade_code IN (‘F’,’G’,’H’) THEN
RETURN ‘障害’;
ELSE
IF kyoso_shubetsu_code=’11’ THEN –2歳
IF grade_code = ‘A’ THEN
RETURN ‘2歳G1’;
ELSIF kyoso_joken_code IN (‘701′,’702’) THEN
RETURN ‘2歳新馬’;
ELSIF kyoso_joken_code = ‘703’ THEN
RETURN ‘2歳未勝利’;
ELSIF kyoso_joken_code = ‘704’ THEN
RETURN ‘2歳1勝以上’;
END IF;
ELSIF kyoso_shubetsu_code=’12’ THEN –3歳
IF kyoso_joken_code IN (‘701′,’702’) THEN
RETURN ‘3歳新馬’;
ELSIF kyoso_joken_code = ‘703’ THEN
RETURN ‘3歳未勝利’;
ELSIF kyoso_joken_code = ‘005’ THEN
RETURN ‘3歳1勝’;
ELSIF kyoso_joken_code = ‘010’ THEN
RETURN ‘3歳2勝’;
ELSE
IF kyoso_joken_code = ‘999’ THEN
IF grade_code = ‘A’ THEN
IF kyosomei_ryakusho_6 = ‘東京優駿’ THEN
RETURN ‘G1特1’;
ELSIF kyosomei_ryakusho_6 IN(‘オークス’,’菊花賞’,’秋華賞’,’NHKマイル’,’皐月賞’,’桜花賞’) THEN
RETURN ‘G1特2’;
ELSE
RETURN ‘3歳G12’;
END IF;
ELSE
RETURN ‘3歳OP’;
END IF;
END IF;
END IF;
ELSE –古馬
IF kyoso_joken_code =’005′ THEN
RETURN ‘1勝クラス’;
ELSIF kyoso_joken_code = ‘010’ THEN
RETURN ‘2勝クラス’;
ELSIF kyoso_joken_code = ‘016’ THEN
RETURN ‘3歳クラス’;
ELSE
IF grade_code IN (‘A’,’B’) THEN
IF kyosomei_ryakusho_6 IN (‘ジャパンC’,’有馬記念’,’宝塚記念’,’天皇賞(秋)’) THEN
RETURN ‘G1特1’;
ELSIF kyosomei_ryakusho_6 IN (‘JBCクラシ’,’フェブラリー’,’エリザベス杯’,’ヴィクトリア’,’大阪杯’) THEN
RETURN ‘G1特2’;
ELSIF grade_code= ‘B’ AND (kyoso_kigo_code BETWEEN ‘020’ AND ‘024’) THEN
RETURN ‘OP’;
ELSE
RETURN ‘G12’;
END IF;
ELSE
RETURN ‘OP’;
END IF;
END IF;
END IF;
END IF;
ELSE
IF kyoso_joken_code =’999′ THEN
IF grade_code IN (‘A’,’B’) THEN
IF kyosomei_ryakusho_6 IN (‘ブリーダーズ’,’ドバイWC’,’Kジョージ’,’凱旋門賞’,’英ダービー’, ‘英オークス’, ‘愛ダービー’) THEN
RETURN ‘G1特1′;
ELSIF kyosomei_ryakusho_6 IN (’BC*’,’ドバイターフ’,’ドバイシーマ’) THEN
RETURN ‘G1特2’;
ELSE
RETURN ‘G12’;
END IF;
ELSE
RETURN ‘OP’;
END IF;
ELSE
RETURN ‘海外’;
END IF;
END IF;
END;
$function$いちばん怪しいのは、’BC*’と書いてしまったところかな、と思ってます。
こういう書き方があるのかどうか調べもせずに実行してしまったことを反省しています。ただ、これを単独で実行したときは通ったんですが、次にSELECT文の中に入れて実行したら、unexpected server response のエラーが出て、それから何をやっても同じエラーが出て使えなくなっています。これからいったんアンインストールして入れ直してみようと思っています。それで使えるようになれば当方としては十分なのですが、もし原因がわかれば、と思い、ご報告いたします。
サトルゲストたびたび失礼します。いれなおしてみましたが、やはり直らないようです。レジストリがそのままになっているのが原因でしょうか?
サトルゲストお世話になっております。
結局Postgresql自体が壊れてしまったみたいなので、全部入れ直しました。
Postgresqlのほうの問題だったのかもしれません。 -
投稿者投稿