有没有办法读取存储在磁盘上的文件夹中的文件名并通过扩展名进行过滤? 这可以用sql server,但现在我需要用postgresql来做。 我等待你的建议。谢谢。
这与sql server一起使用:
EXECUTE master.dbo.xp_cmdshell 'dir /b "C:\Folder_Scripts\*.sql"'
答案 0 :(得分:0)
您的描述和注释不是很清楚,但我认为您想要在磁盘上重命名SQL脚本文件,打开它们并从PL / pgSQL函数中执行包含的SQL语句。
这不是PL / pgSQL擅长的,但这里有你需要的工具:
标准SQL functions for reading files需要超级用户权限,因此您需要一个由SECURITY DEFINER
运行的超级用户拥有的功能。
adminpack
contrib模块中有SQL functions to write files,也需要超级用户权限。
您可以使用EXECUTE
statement执行包含SQL命令(或多个SQL命令,以分号分隔)的字符串。
您可以在SQL标准视图information_schema.routines
中找到数据库中定义的函数。
如果你需要做很多字符串处理,你可能会发现PL / pgSQL有些笨拙。在这种情况下,请考虑使用PL/Perl。