2010-12-16 7 views
0

Ich benutze DbUnit, um Testdatenbank mit Testdaten zu füllen, bevor Tests ausgeführt werden.SET SCAN OFF mit Thin Driver

Fragment meines Ant-Skript:

 
<taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpath="dbunit-2.2.jar" /> 

    <target name="load"> 
     <dbunit driver="oracle.jdbc.driver.OracleDriver" 
      url="jdbc:oracle:thin:@//localhost/XE" 
      userid="user" 
      password="pass"> 

      <classpath> 
       <pathelement location="ojdbc14-10.2.0.1.0.jar"/> 
      </classpath> 
      <operation type="REFRESH" src="testData.xml"/> 
     </dbunit> 

    

In meinen Testdaten habe ich ein paar Werte mit &xx; Werten. Diese Daten werden nicht eingefügt, da sie von Orakel als variabel interpretiert werden.

Ich möchte die Sitzungseigenschaft SET SCAN OFF beim Herstellen einer Verbindung zur Datenbank ändern.

Ich fand heraus, dass ich es als JVM Param mit -Dparam=value übergeben kann. Ich versuchte -Dscan=off, aber es hat nicht funktioniert.

+1

Ich bezweifle, dass Oracle das & als Variable interpretiert. Dies ist eine SQL * Plus-Sache, die hier nicht involviert ist. Können Sie uns die Fehlermeldung zeigen? – Codo

Antwort

0

Es stellte sich heraus, dass es ein Problem mit der alten Version von DbUnit war. Ich verbesserte auf 2.4.8, verwendete org.dbunit.ext.oracle.Oracle10DataTypeFactory und jetzt funktioniert es.

1

Sie können nicht, weil SET SCAN {OFF|ON} ist ein SQL * PLUS-Befehl. Vielleicht auf Ihr Problem eingehen. Warum müssen Sie dies von Ihrer Java App aus aufrufen?

+0

Ich beschrieb Situation in der Frage in mehr Details. –