sql >> Database teknologi >  >> RDS >> Oracle

Send en liste over heltal fra C# til Oracles lagrede procedure

Oracle giver dig mulighed for at videregive arrays af værdier som parametre. Ved at låne fra dette SO-spørgsmål og dette kan du definere en INT_ARRAY skriv sådan her:

create or replace type CHAR_ARRAY as table of INTEGER;

Definer derefter din lagrede procedure som:

CREATE OR REPLACE PROCEDURE product_search(
        ...
        myIds IN CHAR_ARRAY,
        ...)
AS  
    SELECT ...
    ...
    WHERE SomeIdField IN (Select column_value FROM TABLE(myIds))
    ...

Du kan derefter sende listen over værdier ved at indstille egenskaben OracleParameter.CollectionType sådan her:

OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Int32;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;


  1. MySQL length() vs char_length()

  2. lagring af data i en database ved hjælp af rediger tekst og knap

  3. Hvordan tilføjer man en auto-incrementing primær nøgle til en eksisterende tabel i PostgreSQL?

  4. Top 5 fakta til at finde og erstatte SQL-tekster i SQL Server med REPLACE-funktionen