[pgsql-jp: 27868] Re: 16進数文字列を数値にする方法はありますか?
SATO Hiroyuki
hiroyuki @ navitime.co.jp
2002年 11月 2日 (土) 20:51:44 JST
佐藤です。
返信ありがとうございます。
以下の関数で実現できました。
バージョン:postgres (PostgreSQL) 7.2.2
----(↓ここから引用↓)----
CREATE FUNCTION f_to_int_from_hex( TEXT ) RETURNS INTEGER AS
' DECLARE
sql TEXT;
ret INTEGER;
cur REFCURSOR;
BEGIN
sql := ''SELECT X'''''' || $1 || '''''''';
OPEN cur FOR EXECUTE sql;
FETCH cur INTO ret;
CLOSE cur;
RETURN ret;
END;
' LANGUAGE 'plpgsql';
----(↑ここまで引用↑)----
ところで、この関数を作成するにあたって、書籍『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
と同じなのでしょうか?7.1のマニュアルには「OPEN FOR EXECUTE」
の記述がないようですが。
--------
SATO Hiroyuki <hiroyuki @ navitime.co.jp>
From: sugita @ sra.co.jp
Subject: [pgsql-jp: 27867] Re: 16進数文字列を数値にする方法はありますか?
Date: Sat, 02 Nov 2002 19:46:51 +0900 (JST)
> オリジナルの機能ではできなくて、ユーザ定義関数を作成すればできます。
pgsql-jp メーリングリストの案内