sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres heltalsarrays som parametre?

Se:http://www.postgresql.org/docs/9.1/static/arrays.html

Hvis din ikke-native driver stadig ikke tillader dig at passere arrays, så kan du:

  • videregive en strengrepræsentation af et array (som din lagrede procedure derefter kan parse til et array -- se string_to_array )

    CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ 
    DECLARE
           ids INT[];
    BEGIN
           ids = string_to_array($1,',');
           ...
    END $$ LANGUAGE plpgsql;
    

    derefter

    SELECT my_method(:1)
    

    med :1 ='1,2,3,4'

  • stole på, at Postgres selv kan kaste fra en streng til en matrix

    CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ 
           ...
    END $$ LANGUAGE plpgsql;
    

    derefter

    SELECT my_method('{1,2,3,4}')
    
  • vælg ikke at bruge bindevariabler og udstede en eksplicit kommandostreng med alle parametre stavet i stedet (sørg for at validere eller undslippe alle parametre, der kommer udefra for at undgå SQL-injektionsangreb).

    CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ 
           ...
    END $$ LANGUAGE plpgsql;
    

    derefter

    SELECT my_method(ARRAY [1,2,3,4])
    


  1. TCL-kommandoer i SQL

  2. Migrer fra Oracle til MySQL

  3. Hvordan afinstallerer du MySQL fra Mac OS X?

  4. MySQL - Denne version af MySQL understøtter endnu ikke 'LIMIT &IN/ALL/ANY/SOME underforespørgsel