PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Tablice liczb całkowitych Postgres jako parametry?

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

Jeśli Twój nienatywny sterownik nadal nie pozwala na przekazywanie tablic, możesz:

  • przekazać ciąg reprezentujący tablicę (którą twoja procedura składowana może następnie przetworzyć na tablicę — zobacz string_to_array )

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

    wtedy

    SELECT my_method(:1)
    

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

  • polegać na samym Postgresie, aby rzutować z łańcucha na tablicę

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

    wtedy

    SELECT my_method('{1,2,3,4}')
    
  • zdecyduj się nie używać zmiennych wiązania i zamiast tego wydaj jawny ciąg poleceń ze wszystkimi parametrami określonymi (upewnij się, że wszystkie parametry przychodzące z zewnątrz są sprawdzane lub pomijane, aby uniknąć ataków wstrzykiwania SQL).

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

    wtedy

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać dzień roku z daty w PostgreSQL?

  2. Nie udało się załadować modułów sql do klastra bazy danych podczas instalacji PostgreSQL

  3. GET DIAGNOSTICS z poleceniem COPY w funkcji Pl/pgsql

  4. ECONNREFUSED dla Postgres na nodeJS z dokerami

  5. Przechowywanie strefy czasowej w znaczniku czasu typu danych ze strefą czasową