Oracle
 sql >> Base de données >  >> RDS >> Oracle

Passer un tableau comme valeur dans un DBParameter ado.net

Pour SQL-Server, il existe deux approches courantes pour cela. La troisième option à éviter est de passer un varchar et le concaténer dans une instruction SQL dynamique avec IN - c'est une surface d'attaque d'injection claire.

Options raisonnables :

  • passer un varchar et utilisez un UDF pour diviser les données sur un délimiteur (comme dans cette question ), peut-être une virgule, un tube, une tabulation, etc. Joignez-vous au résultat :

    SELECT something, anotherthing
    FROM atable a
    INNER JOIN dbo.SplitUDF(@values) udf
            ON udf.Value = a.something
    
  • utiliser un table-valued-parameter (SQL2008) et joindre directement (éviter l'UDF)