【PostgreSQL】数値であるかのチェック(IsNumeric)
概要
対象の文字列が数値であるかのチェックをする関数です。
引数
引数1(character varying): 数値かチェックする文字
返り値
true:数値 false:数値でない
コード
CREATE OR REPLACE FUNCTION isnumeric(c_num character varying)
RETURNS boolean AS
$BODY$
declare
n_result numeric; -- 一時変数
BEGIN
--数値へcastする
select cast(c_num as numeric) into n_result;
--castできる時はtrueでリターン
return TRUE;
--castできずエラーになる時はここのEXCEPTIONに入る
EXCEPTION
WHEN OTHERS THEN
--エラー時はfalseでリターン
return FALSE;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら
実行例(呼び出し例)
select * from isnumeric('123456'); -- true :数値
select * from isnumeric('abcdef'); -- False:数値でない