[pgsql-jp: 25466] Re: PL/pgSQLで一時テーブルの作成、挿入、削除の問題

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 3月 28日 (木) 19:50:06 JST


  杉田です。

From: Tatsuo Ishii <t-ishii @ sra.co.jp>
Subject: [pgsql-jp: 25462] Re: PL/pgSQLで一時テーブルの作成、挿入、削除の問題
Date: Thu, 28 Mar 2002 18:27:13 +0900

;;; 本題と離れますが,
;;; 
;;; for mval in execute ''select sum(value) as s from test'' loop
;;; 
;;; のループ変数mvalはレコード型にしています.本来ここではこれはレコード型
;;; である必要はないので,

  select_clause と EXECUTE したときには、結果がタプルなので、RECORD 型になるの
では?

  PL/pgSQL の gram.y 見ると for の変数の型によって枝分かれしています。for が 
RECORD でないと expression .. expression に行くので、エラーメッセージの ..  が
表示されているのだと。

;;; val float;
;;; :
;;; for val in execute ''select sum(value) as s from test'' loop
;;; 
;;; としてもみたのですが,
;;; 
;;; NOTICE:  plpgsql: ERROR during compile of test near line 12
;;; ERROR:  missing .. at end of SQL expression
;;; 
;;; と怒られちゃうんですよね.なぜかなー


Kenji Sugita
sugita @ sra.co.jp



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