问题
我们有一个由 DBA 提供的包装脚本,用于执行构成给定软件版本的许多底层 sql 脚本。
包装脚本输出一些关于将要执行的调试信息,然后询问用户是否希望继续,使用以下 sqlplus 命令
ACCEPT DB_OK PROMPT "Do you wish to Continue Y/[N]? : " DEFAULT N
我们正在尝试使用 maven 在构建中自动创建数据库...构建挂起等待用户输入:-(
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sqlplus</executable>
<arguments>
<argument>${db.user}/${db.password}@${db.service.name}</argument>
<argument>@${project.build.directory}/test-resources/create-db.sql</argument>
</arguments>
<workingDirectory>${project.build.directory}/test-resources</workingDirectory>
</configuration>
</execution>
</executions>
</plugin>
尝试的解决方案
我试图将 ACCEPT 调用包装在 plsql IF/ELSE 块中,但这会导致有关“ACCEPT”的错误和不正确的语法,我想这是因为我正在混合使用 plsql 和 sqlplus 命令。
问题
那么,有谁知道如何在 sqlplus 中禁用 ACCEPT 提示,类似于传统替换变量的 SET DEFINE OFF?
我可以对包装脚本进行一些小修改,但如果我要进行批量重构,DBA 可能会抱怨。
谢谢。