La mia ultima domanda Passing an array to stored to postgres era un po 'oscura. Ora, per chiarire il mio obiettivo:Unnest multiple array in parallelo
Voglio creare una stored procedure Postgres che accetterà due parametri di input. Uno sarà un elenco di alcuni importi come per esempio (100, 40.5, 76)
e l'altro sarà un elenco di alcune fatture ('01-2222-05','01-3333-04','01-4444-08')
. Dopo voglio usare questi due elenchi di numeri e personaggi e fare qualcosa con loro. Ad esempio, voglio prendere ogni importo da questa matrice di numeri e assegnarlo alla fattura corrispondente.
Qualcosa di simile in Oracle sarebbe simile a questa:
SOME_PACKAGE.SOME_PROCEDURE (
789,
SYSDATE,
SIMPLEARRAYTYPE ('01-2222-05','01-3333-04','01-4444-08'),
NUMBER_TABLE (100,40.5,76),
'EUR',
1,
P_CODE,
P_MESSAGE);
Naturalmente, i due tipi SIMPLEARRAYTYPE
e NUMBER_TABLE
sono definite in precedenza nel DB.
Qual è chiaro esattamente? Come chiamare * questo tipo di funzioni? È possibile utilizzare i costruttori di array http://www.postgresql.org/docs/current/static/sql-expressions.html#SQL-SYNTAX-ARRAY-CONSTRUCTORS o, è possibile scrivere la loro rappresentazione di input in stringa (quindi utilizzare la fusione facoltativamente http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-IO – pozs
Non so come creare stored proc con questi tipi di parametri di input. – Maki
Questo è anche trattato nella tua domanda precedente (es. Http://stackoverflow.com/questions/27708234/pl-pgsql-control-structures-for-lists-arrays) - puoi usare lo standard compatibile ' ARRAY', o la sintassi' [] 'specifica di PostgreSQL. http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-DECLARATION –
pozs