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

2020年7月18日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;
	
	EXCEPTION
	WHEN OTHERS THEN
	
	--castできずエラーになる時はfalseでリターン
	return FALSE;
 
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION isnumeric(character varying)
  OWNER TO postgres;

※PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら

 

実行例

select * from isnumeric('123abc456');
--False

 

PostgreSQLの構文まとめを書いています

入門~経験者まで「基本構文・こんな時どう書くんだっけ?」のまとめ