Comment depuis ASP.NET je peux appeler une procédure stockée dans un package Oracle qui accepte un VArray. Le VArray transmettra une liste de clés que la procédure stockée utilisera pour modifier les enregistrements appropriés. Je sais que je pourrais envoyer les clés dans des appels séparés ou envoyer une liste délimitée, mais je préfère utiliser un tableau.Appel C# vers Oracle 11g Procédure avec le paramètre VARRAY
2
A
Répondre
2
En supposant que vous utilisez ODP.NET (vous ne devriez pas utiliser System.Data.OracleClient
de toute façon), voici comment faire:
using System;
using System.Data;
using Oracle.DataAccess.Client;
class SomeClass
{
void SomeMethod(string connectionString, int[] anArrayOfKeys)
{
using (var con = new OracleConnection(connectionString))
using (var cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "StoredProcedureNameGoesHere";
cmd.Parameters.Add(
"ParameterNameGoesHere",
OracleDbType.Array,
anArrayOfKeys,
ParameterDirection.Input);
con.Open();
cmd.ExecuteNonQuery();
}
}
}
-1
OracleCommand cmd = OracleConnection1.CreateCommand();
cmd.CommandText = "INSERT INTO ArrayTable VALUES (:CODE, :TITLE, : ARR1, :ARR2)";
...
OracleArray arr1 = new OracleArray("SCOTT.TARRAY1", OracleConnection1);
arr1.Add(10);
arr1.Add(20);
arr1.Add(30);
...
cmd.Parameters["ARR1"].DbType = OracleDbType.Array;
cmd.Parameters["ARR1"].Value = arr1;
...
cmd.ExecuteNonQuery();
Questions connexes
- 1. Appel d'une procédure de membre Oracle 11g
- 2. aide avec C# + Oracle 11g
- 3. Oracle fonction stockée/procédure avec VARRAY ou type défini par l'utilisateur comme paramètre IN
- 4. La dernière procédure exécutée dans Oracle 11g
- 5. TransactionTimeout avec Oracle 11g
- 6. Appel de la procédure Oracle Oracle avec entrées et sorties
- 7. Data Guard Oracle 11g
- 8. Oracle 11g SELF procédure de membre ne fonctionne pas
- 9. JDBC Thin dans Oracle 11g avec Java
- 10. Appelez la procédure stockée Oracle avec un enregistrement comme paramètre
- 11. appel Oracle procédure stockée à partir de C#
- 12. Appel de la procédure stockée Oracle à partir de C#?
- 13. DB Oracle 11g BenchMarking
- 14. NHibernate TransactionScope problème avec Oracle 11g
- 15. Comment utiliser le client Oracle 11g?
- 16. hibernate (grails) avec Oracle 11g - privilèges insuffisants
- 17. Oracle procédure stockée étendue avec C++
- 18. Appel d'une procédure stockée avec une autre dans Oracle
- 19. Appel d'une procédure de sauvegarde Oracle avec NHibernate
- 20. Oracle vers Excel - Procédure d'exportation PL/SQL
- 21. Impossible d'installer le client Oracle 11g avec erreur OUI-10037
- 22. Oracle 11g restauration à froid?
- 23. iReport avec Oracle Procédure stockée
- 24. Passage d'un tableau de données en tant que paramètre d'entrée à une procédure Oracle
- 25. appel C++ fonction avec le paramètre de référence de cli
- 26. Appel de méthode Objectif C de JavaScript avec le paramètre
- 27. ORACLE 11g case insensible par défaut
- 28. Appel d'une procédure stockée avec le type de données XML
- 29. appel modèle xslt avec le paramètre
- 30. Problème de paramètre avec Oracle RefCursor
Non, je l'ai pas essayé , et ne répondrait pas à mes exigences car il s'insère directement dans la table plutôt que d'appeler la procédure stockée (ce qui peut faire plus qu'un simple insert). Il semble que vous référeniez un type de tableau Oracle (SCOTT.TARRAY1), ce qui me permet d'y arriver en partie. –
Je n'ai pas remarqué le lien initialement. Cette solution nécessite également l'achat de dotConnect de devart. –