【PostgreSQL】ファイルパス(フルパス)からファイル名を取得する

2020年11月20日PostgreSQL自作関数

スポンサーリンク

ファイルパス(フルパス)からファイル名を取得する

ファイルパス(フルパス)からファイル名(拡張子付き)を取得します。

※ 具体的には、後ろから"/"を検索し、その位置を取得。

その位置+1の文字から、最後までを取得して返します。

 

引数

引数1(character varying):ファイルパスの文字列(フルパス)

 

返り値

ファイル名(拡張子付き)

 

コード

CREATE OR REPLACE FUNCTION get_filename(character varying)
  RETURNS character varying AS
$BODY$
declare

	full_path	alias for $1;		--引数1:ファイルパスの文字列(フルパス)

begin

	return substring(full_path,lastindexof(full_path,'\')+1,length(full_path));
	
end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION get_filename(character varying)
  OWNER TO postgres;

※ PostgreSQL12で動作確認済み

※ このファンクションで使用している「lastindexof」はここで紹介しています。

検索文字を後ろから検索する(LastIndexOf)

 

実行例

select * From get_filename('D:\folder1\folder2\text123.txt');
-- text123.txt

 

他にもこんな関数があります(文字列操作の関数)

2つの文字列を比較して一致するかチェックする

文字列をバイト数で計算する

ひらがなをカタカナに置換する

カンマ区切り文字列の指定カンマ箇所を取得する

文字を左のX文字目から○文字切り取る(Mid関数)

文字列中に指定した文字が含まれるかのチェック