Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Passar uma matriz como valor em um DBParameter ado.net


Para SQL-Server, existem duas abordagens comuns para isso. A terceira opção a ser evitada é passar um varchar e concatene-o em uma instrução SQL dinâmica com IN - esta é uma superfície de ataque de injeção clara.

Opções razoáveis:

  • passe um varchar e use uma UDF para dividir os dados em um delimitador (como nesta pergunta ), talvez vírgula, barra vertical, tabulação, etc. Junte-se ao resultado:
    SELECT something, anotherthing
    FROM atable a
    INNER JOIN dbo.SplitUDF(@values) udf
            ON udf.Value = a.something
    
  • use um parâmetro com valor de tabela (SQL2008) e junte-se diretamente (evite a UDF)