3 Stimmen

SQL*Plus deaktivieren oder überspringen Sie ACCEPT PROMPT

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X