[pgsql-jp: 27871] Re: 16進数文字列を数値にする方法はありますか?

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 11月 2日 (土) 22:55:10 JST


  杉田です。

From: SATO Hiroyuki <hiroyuki @ navitime.co.jp>
Subject: Re: [pgsql-jp: 27867] Re: 16進数文字列を数値にする方法はありますか?
Date: Sat, 02 Nov 2002 20:51:44 +0900 (LMT)

;;; ところで、この関数を作成するにあたって、書籍『PostgreSQL7.1
;;; 日本語マニュアル』の565ページを参照いたしました。そこには次
;;; のような記述があります。
;;; 
;;; http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/plpgsql-description.html#PLPGSQL-STATEMENTS-EXECUTING-DYN-QUERIES
;;; ----(↓ここから引用↓)----
;;; 結果を動的に作成された SELECT から抜き出す唯一の方法は後で述
;;; べる FOR ... EXECUTE を使用することです。
;;; ----(↑ここまで引用↑)----
;;; 
;;; この「FOR ... EXECUTE」は、今回私が使用した「OPEN FOR
;;; EXECUTE」
;;; http://www.postgresql.jp/document/pg721doc/programmer/plpgsql-cursors.html#AEN11758
;;; と同じなのでしょうか?

  「FOR ... EXECUTE」だとこんな感じでしょうか。

    CREATE OR REPLACE FUNCTION f_to_int_from_hex( text ) RETURNS integer AS
    '
	DECLARE
	    sql text;
	    ret RECORD;
	BEGIN
	    sql := ''SELECT X'''''' || $1 || ''''''::integer AS dec'';
	    FOR ret IN EXECUTE sql LOOP
	    END LOOP;
	    RETURN ret.dec;
	END;
    ' LANGUAGE 'plpgsql';

;;;                       7.1のマニュアルには「OPEN FOR EXECUTE」
;;; の記述がないようですが。

  7.2 のマニュアルには、ありました。


Kenji Sugita                                      



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