【PostgreSQL】数値であるかのチェック(IsNumeric)

PostgreSQL自作関数

概要

対象の文字列が数値であるかのチェックをする関数です。

 

引数

引数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:数値でない

 

関連記事

四捨五入・切り上げ・切り捨て(Round)

文字から数値、数値から文字へ変換する

数値をカンマで区切る【自作関数】

数値を文字に変換する(to_char)