[pgsql-jp: 34284] テーブルに登録された関数の実行について
Noriyuki TORII
torii @ nn.iij4u.or.jp
2004年 11月 18日 (木) 12:56:25 JST
こんにちは、鳥居と申します。
postgreSQLでの関数の利用について少し分からない点があり, みなさまの
知恵をお借りたいと思っています.
例えば, 次のようなテーブルと関数を用意したとします.
create table functbl (
name text,
function regprocedure
);
create function inc(integer) returns integer as '
select $1 + 1;
' language sql;
insert into functbl (name, function)
values ('increment', 'inc(integer)');
select * from functbl;
name | function
-----------+--------------
increment | inc(integer)
(1 row)
ここで, このfunctblからSELECTした結果を関数として利用することが
できないかというのが頭を悩ませている点です.
つまり
update datatbl set value=inc(value);
を実行するみたいに
update datatbl
set value=(select function from functbl where name='increment')(value);
のようなことを(上の文はエラーになりますが)できないだろうかということです.
私の方でも調べてはみたのですが, これまでのところ期待したような情報を
見つけることができずにいます.
何かよい文書へのポインタや, そもそもこのようなことが可能かどうかなど
ご存知の方がいらっしゃればお教えいただけないでしょうか.
では, よろしくお願いします.
---
torii @ nn.iij4u.or.jp
pgsql-jp メーリングリストの案内