Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ant执行sqlplus无法找到DYLD_库_路径_Ant_Sqlplus - Fatal编程技术网

从ant执行sqlplus无法找到DYLD_库_路径

从ant执行sqlplus无法找到DYLD_库_路径,ant,sqlplus,Ant,Sqlplus,我正在尝试使用sqlplus的execute标记从ApacheAnt中运行SQL脚本 <exec dir="src/sql" executable="sqlplus" failonerror="true" output="src/sql/test.sql.err"> <arg value="${db.login}"/> <arg value="@test.sql"/> </exec> 对于我设置的命

我正在尝试使用sqlplus的execute标记从ApacheAnt中运行SQL脚本

    <exec dir="src/sql" executable="sqlplus" failonerror="true" output="src/sql/test.sql.err">
        <arg value="${db.login}"/>
        <arg value="@test.sql"/>
    </exec>
对于我设置的命令行:

export DYLD_LIBRARY_PATH=/Applications/instantclient_11_2/

Ant要找到库,我需要采取类似的行动吗?

一个选择是尝试一下SQLcl。 它是sqldev的sql脚本引擎,它是sqlplus,还有更多

好处是没有库,它是自包含的,并使用JDBC瘦驱动程序进行数据库连接

这是你的蚂蚁例子

<project name="sqlcl" basedir=".">
  <property name="db.login" value="klrice/klrice"/>
  <target name="sqlcl">

  <exec dir="." executable="/Users/klrice/Downloads/sqlcl/bin/sql"
        failonerror="true"
        output="sql/test.sql.err">
        <arg value="${db.login}"/>
        <arg value="@sql/dual.sql"/>
    </exec>
</target>
</project>

一种选择是尝试SQLcl。 它是sqldev的sql脚本引擎,它是sqlplus,还有更多

好处是没有库,它是自包含的,并使用JDBC瘦驱动程序进行数据库连接

这是你的蚂蚁例子

<project name="sqlcl" basedir=".">
  <property name="db.login" value="klrice/klrice"/>
  <target name="sqlcl">

  <exec dir="." executable="/Users/klrice/Downloads/sqlcl/bin/sql"
        failonerror="true"
        output="sql/test.sql.err">
        <arg value="${db.login}"/>
        <arg value="@sql/dual.sql"/>
    </exec>
</target>
</project>

使用@kris rice建议的解决方案,下面是我的实现,包括检查错误

<!-- =================================================================== -->
<!-- load plsql tox -->
<!-- =================================================================== -->
<target name="compile.plsql.tox" description="compile plsql for tox">
    <echo message="compile.plsql.tox --------------------"/>
    <mkdir dir="tmp/log"/>
    <exec dir="src/sql" executable="sql" failonerror="true" output="src/sql/tox.all.sql.err">
        <arg value="${db.login.tox}"/>
        <arg value="@tox.all.sql"/>
    </exec>
    <echo message="looking for plsql errors -------------------"/>
    <exec dir="src/sql" executable="grep" failonerror="false" resultproperty="found">
        <arg value="LINE/COL ERROR"/>
        <arg value="tox.all.sql.err"/>
    </exec>
    <fail message="plsql compile errors">
        <condition>
            <equals arg1="${found}" arg2="0"/>
        </condition>
    </fail>
    <echo message="looking for line item errors ---------------"/>
    <exec dir="src/sql" executable="grep" failonerror="false" resultproperty="found">
        <arg value="ERROR at"/>
        <arg value="tox.all.sql.err"/>
    </exec>
    <fail message="sql compile errors">
        <condition>
            <equals arg1="${found}" arg2="0"/>
        </condition>
    </fail>
    <echo message="compile.plsql.tox --------------------"/>
</target>
<!-- =================================================================== -->

使用@kris rice建议的解决方案,下面是我的实现,包括检查错误

<!-- =================================================================== -->
<!-- load plsql tox -->
<!-- =================================================================== -->
<target name="compile.plsql.tox" description="compile plsql for tox">
    <echo message="compile.plsql.tox --------------------"/>
    <mkdir dir="tmp/log"/>
    <exec dir="src/sql" executable="sql" failonerror="true" output="src/sql/tox.all.sql.err">
        <arg value="${db.login.tox}"/>
        <arg value="@tox.all.sql"/>
    </exec>
    <echo message="looking for plsql errors -------------------"/>
    <exec dir="src/sql" executable="grep" failonerror="false" resultproperty="found">
        <arg value="LINE/COL ERROR"/>
        <arg value="tox.all.sql.err"/>
    </exec>
    <fail message="plsql compile errors">
        <condition>
            <equals arg1="${found}" arg2="0"/>
        </condition>
    </fail>
    <echo message="looking for line item errors ---------------"/>
    <exec dir="src/sql" executable="grep" failonerror="false" resultproperty="found">
        <arg value="ERROR at"/>
        <arg value="tox.all.sql.err"/>
    </exec>
    <fail message="sql compile errors">
        <condition>
            <equals arg1="${found}" arg2="0"/>
        </condition>
    </fail>
    <echo message="compile.plsql.tox --------------------"/>
</target>
<!-- =================================================================== -->


我不知道SQLcl的存在。工作完美。谢谢,太好了,我能帮上忙!我不知道SQLcl的存在。工作完美。谢谢,太好了,我能帮上忙!