执行PL / SQL过程的Ant exec可执行文件失败

时间:2016-11-16 16:15:47

标签: jenkins ant exec executable sqlplus

我有一个Ant脚本来执行SQL和PL / SQL过程。

import math

def is_prime(n):
    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
    return True

上面的代码执行SQL脚本和包,但不执行以下过程:

http://localhost:8080/AkademikSOAP/Service

如何使用相同的<exec executable="sqlplus" failonerror="true" > <arg value="${user}/${password}@${DB}" /> <arg value="@${scriptFilename}" /> </exec> 可执行文件执行所有操作?

1 个答案:

答案 0 :(得分:2)

您没有收到错误,并且在评论的输出中您看不到正在执行的块。那是因为它不是。 From the documentation

  

SQL * Plus存储您在SQL缓冲区中输入的子程序。使用RUN或斜杠(/)命令执行当前子程序。分号(;)被视为PL / SQL子程序的一部分,不会执行命令。

目前,您的匿名阻止(子程序)正在进入“SQL缓冲区”,但永远不会被执行。

您只需在匿名阻止后添加/脚本文件:

...
   LOOP
      EXECUTE IMMEDIATE 'drop procedure '||R.owner||'.'||R.object_name; 
   END LOOP;     
END;
/