2010年9月 9日

[pgsql-jp: 40378]自作関数nvlの挙動について

片山です。お世話になります。
サーバ、クライアント共にPostgreSQL ver8.2.4を使用しております。
nvl(numeric, integer)、nvl(integer, integer)と2つの関数を作成して使用してお
りますが、AP内で自作のnvl(numeric, integer)を使用するとAPが異常終了する場合が
あり困っています。
(ODBC接続を使用)
numeric(8桁)を用いてnvl(numeric, integer)を100回連続で呼び出した後に、第一引
数をnumeric(9桁)でnvl呼び出した場合APが異常終了するようです。

(nvl(integer,integer)を明示的に呼び出すようにSQLを修正すると正常に動作しま
す)
この挙動についてなにかご存知でしたら教えていただけないでしょうか。

↓NVLのソース↓
CREATE OR REPLACE FUNCTION nvl(numeric, integer)
RETURNS numeric AS
$BODY$
declare
n_str1 alias for $1;
i_str2 alias for $2;
begin
if n_str1 is null then
return i_str2;
else
return n_str1;
end if;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


CREATE OR REPLACE FUNCTION nvl(integer, integer)
RETURNS integer AS
$BODY$
declare
i_str1 alias for $1;
i_str2 alias for $2;
ret integer;
begin
if i_str1 is null then
ret := i_str2;
else
ret := i_str1;
end if;
return ret;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
以上です。

投稿者 xml-rpc : 2010年9月 9日 17:29
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/98227
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。