Problem
Wir haben ein vom DBA bereitgestelltes Wrapper-Skript, das zur Ausführung einer Reihe von zugrunde liegenden SQL-Skripten verwendet wird, die eine bestimmte Softwareversion umfassen.
Das Wrapper-Skript gibt einige Debug-Informationen darüber aus, was ausgeführt wird, und fragt dann den Benutzer, ob er mit dem folgenden sqlplus-Befehl fortfahren möchte
ACCEPT DB_OK PROMPT "Do you wish to Continue Y/[N]? : " DEFAULT N
Wir versuchen, die Erstellung der Datenbank in unserem Build mit Maven zu automatisieren... der Build bleibt hängen und wartet auf Benutzereingaben :-(
<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>
Versuchte Lösungen
Ich habe versucht, den ACCEPT-Aufruf in einem plsql IF/ELSE-Block zu verpacken, aber dies führt zu einem Fehler in Bezug auf "ACCEPT" und falsche Syntax, ich vermute, dies ist, weil ich plsql und sqlplus Befehle mischen.
Frage
Also, weiß jemand, wie ich die ACCEPT-Eingabeaufforderung in Sqlplus ähnlich wie SET DEFINE OFF für traditionelle Substitutionsvariablen deaktivieren kann?
Ich kann kleine Änderungen am Wrapper-Skript vornehmen, aber die DBAs würden sich wahrscheinlich beschweren, wenn ich eine umfassende Umstrukturierung vornehmen würde.
Danke.