【PostgreSQL】ファイルパス(フルパス)からファイル名を取得する
ファイルパス(フルパス)からファイル名を取得する
ファイルパス(フルパス)からファイル名(拡張子付き)を取得します。
具体的には、後ろから'\'を検索し、その位置+1の文字から最後までを取得します。
「D:\folder1\folder2\text123.txt」(下線の部分を取得)
引数
引数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」という関数が必要です。
実行例
select * From get_filename('D:\folder1\folder2\text123.txt');
-- text123.txt