Function PostgreSQL函数执行问题

Function PostgreSQL函数执行问题,function,postgresql,commit,scheduler,Function,Postgresql,Commit,Scheduler,我在执行使用PL/pgSQL编写的函数时遇到了一个问题。我面临的问题是,当我使用pgAdmin手动执行函数时,函数会被执行,数据会加载到目标表中。但是,当我使用我们团队开发的调度器执行相同的函数时,根据需求执行所有不同类型的函数和ETL,postgreSQL函数执行,但不将数据提交到表中。如果我们在函数执行语句之后给出一个COMMIT语句,那么数据才会被提交 有谁能告诉我,函数在手动执行时提交,但在调度程序中执行时没有提交的这种行为的可能原因是什么 如果有人能尽早帮助我,我将不胜感激 提前感谢。

我在执行使用PL/pgSQL编写的函数时遇到了一个问题。我面临的问题是,当我使用pgAdmin手动执行函数时,函数会被执行,数据会加载到目标表中。但是,当我使用我们团队开发的调度器执行相同的函数时,根据需求执行所有不同类型的函数和ETL,postgreSQL函数执行,但不将数据提交到表中。如果我们在函数执行语句之后给出一个COMMIT语句,那么数据才会被提交

有谁能告诉我,函数在手动执行时提交,但在调度程序中执行时没有提交的这种行为的可能原因是什么

如果有人能尽早帮助我,我将不胜感激


提前感谢。

默认情况下,postgresql以自动提交模式运行。这意味着您执行的每个SQL语句都会立即提交。这是当您使用诸如pgadmin或psql之类的工具执行命令时发生的情况,假设您不首先执行BEGIN

我猜您的调度程序框架正在开始作业之前执行BEGIN,它希望您将工作作为作业的一部分提交


如果不了解有关调度程序的更多详细信息,就不可能更具体。

默认情况下,postgresql在自动提交模式下运行。这意味着您执行的每个SQL语句都会立即提交。这是当您使用诸如pgadmin或psql之类的工具执行命令时发生的情况,假设您不首先执行BEGIN

我猜您的调度程序框架正在开始作业之前执行BEGIN,它希望您将工作作为作业的一部分提交


如果不了解有关调度程序的更多详细信息,就不可能更具体。

默认情况下,postgresql在自动提交模式下运行。这意味着您执行的每个SQL语句都会立即提交。这是当您使用诸如pgadmin或psql之类的工具执行命令时发生的情况,假设您不首先执行BEGIN

我猜您的调度程序框架正在开始作业之前执行BEGIN,它希望您将工作作为作业的一部分提交


如果不了解有关调度程序的更多详细信息,就不可能更具体。

默认情况下,postgresql在自动提交模式下运行。这意味着您执行的每个SQL语句都会立即提交。这是当您使用诸如pgadmin或psql之类的工具执行命令时发生的情况,假设您不首先执行BEGIN

我猜您的调度程序框架正在开始作业之前执行BEGIN,它希望您将工作作为作业的一部分提交


如果不了解有关调度程序的更多详细信息,就不可能更具体。

我将此语句作为参数传递给调用PostgreSQL函数的调度程序。选择test();犯罪没有BEGIN语句。如果我删除了提交;语句,则数据不会插入到表中,但如果我给出commit,它会插入到表中。@YousufIbnAkhtarSultan要实现这一点,在调度程序中运行任务之前,必须在该数据库句柄上给定BEGIN,可能是由上一个任务执行的?我想不出任何其他解释。如果您可以启用语句日志记录,那么您可能可以更好地看到正在发生的事情。我将此语句作为参数传递给调用PostgreSQL函数的调度程序。选择test();犯罪没有BEGIN语句。如果我删除了提交;语句,则数据不会插入到表中,但如果我给出commit,它会插入到表中。@YousufIbnAkhtarSultan要实现这一点,在调度程序中运行任务之前,必须在该数据库句柄上给定BEGIN,可能是由上一个任务执行的?我想不出任何其他解释。如果您可以启用语句日志记录,那么您可能可以更好地看到正在发生的事情。我将此语句作为参数传递给调用PostgreSQL函数的调度程序。选择test();犯罪没有BEGIN语句。如果我删除了提交;语句,则数据不会插入到表中,但如果我给出commit,它会插入到表中。@YousufIbnAkhtarSultan要实现这一点,在调度程序中运行任务之前,必须在该数据库句柄上给定BEGIN,可能是由上一个任务执行的?我想不出任何其他解释。如果您可以启用语句日志记录,那么您可能可以更好地看到正在发生的事情。我将此语句作为参数传递给调用PostgreSQL函数的调度程序。选择test();犯罪没有BEGIN语句。如果我删除了提交;语句,则数据不会插入到表中,但如果我给出commit,它会插入到表中。@YousufIbnAkhtarSultan要实现这一点,在调度程序中运行任务之前,必须在该数据库句柄上给定BEGIN,可能是由上一个任务执行的?我想不出任何其他解释。如果您可以启用语句日志记录,那么您可能会更好地看到正在发生的事情。