gpt4 book ai didi

postgresql - 如何从 plpgsql 函数运行 bat 文件

转载 作者:行者123 更新时间:2023-11-29 14:07:19 28 4
gpt4 key购买 nike

有没有办法从用 plpgsql 编写的函数运行批处理文件?

最佳答案

直接从 PL/PgSQL 是不可能的。

您只能通过在不受信任的 PL(例如 PL/Perlu 或 PL/Pythonu)中提供一个辅助函数来执行此操作,然后运行批处理文件。

在 Python 中你会使用类似这样的东西:

CREATE FUNCTION exec_system_cmd (command text)
RETURNS return-type
AS $$
import os
import sys
os.system(command)
$$ LANGUAGE plpythonu;

或者你可以更复杂一点,使用 subprocess 模块来传递一个参数数组,这样你就不必担心转义 %> 和命令字符串中的其他特殊字符。

显然 exec_system_cmd 应该只能由 super 用户执行,如果可能的话,您应该编写一个更专门的函数,不允许用户运行他们喜欢的任何命令。

虽然这是可能的,但这并不是一个好主意。我同意 Erwin 的观点,最好有一个外部帮助程序使用 LISTENNOTIFY 在需要时运行命令。

关于postgresql - 如何从 plpgsql 函数运行 bat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522686/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com