我在执行使用PL / pgSQL编写的函数时遇到问题。我面临的问题是当我使用pgAdmin手动执行函数时,函数会被执行并且数据会被加载到目标表中。但是当我使用由我们的团队开发的调度程序执行相同的函数来执行基于需求的所有不同类型的函数和ETL时,postgreSQL函数执行但不将数据委托到表中。如果我们在函数执行语句之后给出一个COMMIT语句,那么只有数据才会被提交。
任何人都可以建议我在手动执行时提交函数的这种行为的可能原因是什么?但是在调度程序中执行时却没有?
如果有人能够最早帮助我,我将非常感激。
提前致谢。
答案 0 :(得分:3)
默认情况下,postgresql以自动提交模式运行。这意味着您执行的每个SQL语句都会立即提交。这是使用pgadmin或psql等工具执行命令时发生的情况,假设您没有先执行BEGIN。
我猜你的调度程序框架在开始工作之前正在执行BEGIN,并且它希望你将工作作为工作的一部分提交。
如果不了解有关调度程序的更多详细信息,则无法更具体。