sql >> Databáze >  >> RDS >> PostgreSQL

Postgres celočíselná pole jako parametry?

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

Pokud váš nenativní ovladač stále neumožňuje předávat pole, můžete:

  • předat řetězcovou reprezentaci pole (které může vaše uložená procedura analyzovat do pole – viz string_to_array )

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

    pak

    SELECT my_method(:1)
    

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

  • spoléhat na samotný Postgres při přetypování z řetězce do pole

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

    pak

    SELECT my_method('{1,2,3,4}')
    
  • rozhodnout se nepoužívat proměnné vazby a místo toho zadat explicitní příkazový řetězec se všemi parametry (nezapomeňte ověřit nebo opustit všechny parametry přicházející zvenčí, abyste se vyhnuli útokům SQL injection.)

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

    pak

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


  1. Kde je databáze chyb Oracle?

  2. Jak zálohovat funkce pouze v Postgresu

  3. Vybrat všechny sloupce kromě jednoho v MySQL?

  4. Jak provést aktualizaci + připojit se k PostgreSQL?