2009-07-27 4 views
1

Gibt es eine Möglichkeit, ein beliebiges SQL-Skript über ODP.NET auszuführen? Ich würde gerne so etwas tun:Kann ich ein beliebiges Oracle SQL-Skript über ODP.NET ausführen?

SomeOracleObject.RunFile("myfile.sql"); 

Mit anderen Worten, ich möchte die Notwendigkeit für sqlplus.exe umgehen.

+0

Normalerweise enthält ein SQL-Skript in Oracle SQL- und PL/SQL- sowie SQL * Plus-Befehle. Müssen Skripts mit SQL * Plus-Befehlen (SPOOL, BREAK, COLUMN usw.) unterstützt werden? Möchten Sie nur eine Datei ausführen, die SQL- und PL/SQL-Befehle enthält? –

+0

Nur SQL- und PL/SQL-Befehle Diese Skripte werden von uns für diesen .NET-Code geschrieben, der ausgeführt werden soll –

+0

Also ich denke, das ist nicht wirklich willkürlich. ..;) –

Antwort

0

Hier ist ein Code-Schnipsel, mit dem ich genau das mache, was Sie fragen.

using (OracleConnection conn = CreateConnection(confConnString)) 
    { 
     try 
     { 
      using (OracleCommand cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = scriptFileContents; 

       cmd.ExecuteNonQuery(); 
+0

Das funktioniert nicht - wenn ich das versuche, erhalte ich einen ORA-00911-Fehler, da es nicht gefällt; am Ende der SQL-Anweisungen – thecoop

+0

Versuchen Sie, den Inhalt jeder Skriptdatei in BEGIN/END zu verpacken; –

1

Ich habe nach einer ähnlichen Lösung für das Problem gesucht. I posted on the Oracle forums für ODP.NET aber es scheint niemand von Oracle tatsächlich an den Foren teilnimmt. Das nächste, was ich gesehen habe, ist DevArt's dotConnect for Oracle's OracleScript class. Im Idealfall möchte ich die gleiche Funktionalität wie in den SQL Server-Verwaltungsobjekten, aber für Oracle. Wenn ich meine Wahl hätte, würde ich aufgrund solcher Dinge zurück zu SQL Server wechseln - aber es ist nicht meine Entscheidung. :(

Verwandte Themen