2009-07-27 8 views
1

Existe-t-il un moyen d'exécuter un script SQL arbitraire via ODP.NET? Je voudrais faire quelque chose comme ceci:Puis-je exécuter un script Oracle Oracle arbitraire via ODP.NET?

SomeOracleObject.RunFile("myfile.sql"); 

En d'autres termes, je veux éviter le besoin de sqlplus.exe.

+0

Normalement, un script SQL dans Oracle contient SQL et PL/SQL ainsi que des commandes SQL * Plus Vous devez prendre en charge les scripts qui incluent des commandes SQL * Plus (SPOOL, BREAK, COLUMN, etc.)? Voulez-vous exécuter un fichier qui contient des commandes SQL et PL/SQL? –

+0

Commandes SQL et PL/SQL Ces scripts sont écrits par nous pour que ce code .NET s'exécute –

+0

Donc je suppose que ce n'est pas vraiment arbitraire. ..;) –

Répondre

0

Voici un extrait de code que j'utilise pour faire exactement ce que vous demandez.

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

       cmd.ExecuteNonQuery(); 
+0

Cela ne fonctionne pas - quand j'essaye de faire cela, j'obtiens une erreur ORA-00911 car elle n'aime pas; à la fin des instructions SQL – thecoop

+0

Essayez d'encapsuler le contenu de chaque fichier script dans BEGIN/END; –

1

Je cherchais une solution similaire au problème. Je posted on the Oracle forums pour ODP.NET mais il semble que personne d'Oracle ne participe réellement aux forums. La chose la plus proche que j'ai vue à ce sujet est dotConnect pour Oracle OracleScript class. Idéalement, je veux la même fonctionnalité que celle que j'ai dans les objets de gestion de SQL Server, mais pour Oracle. Si j'avais mon choix, je retournerais à SQL Server à cause de choses comme ça - mais ce n'est pas mon choix à faire. :(

Questions connexes