有没有办法读取存储在磁盘文件夹中的文件名并通过扩展名过滤? 这可以用 sql server 来做,但现在我需要用 postgresql 来做。 我等待你的建议。谢谢。
这与 sql server 一起使用:
EXECUTE master.dbo.xp_cmdshell 'dir /b "C:\Folder_Scripts\*.sql"'
最佳答案
你的描述和评论不太清楚,但我了解到你想重命名磁盘上的 SQL 脚本文件,打开它们并从 PL/pgSQL 函数中执行包含的 SQL 语句。
这不是 PL/pgSQL 擅长的,但这里是您需要的工具:
有标准SQL functions for reading files ,这需要 super 用户权限,因此您需要一个 super 用户拥有的函数,该函数使用
SECURITY DEFINER
运行。有SQL functions to write files在
adminpack
contrib 模块中,也需要 super 用户权限。您可以使用
EXECUTE
statement 执行包含一个 SQL 命令(或多个 SQL 命令,以分号分隔)的字符串.您可以在SQL标准 View 中找到数据库中定义的函数
information_schema.routines
.
如果您需要进行大量的字符串处理,您可能会发现 PL/pgSQL 有点笨拙。在这种情况下,请考虑使用 PL/Perl .
关于postgresql - 使用 PostgreSQL 将 .sql 文件读取到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42058886/