Articles of plpgsql

La funzione con query SQL non ha destinazione per i dati dei risultati

Sto cercando di creare una funzione che restituisca un set di risultati SELEZIONATO. Quando chiamo la mia funzione postgres come questa select * from tst_dates_func() ottengo un errore come mostrato di seguito: ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. CONTEXT: […]

Restituisce le righe corrispondenti agli elementi dell’array di input nella funzione plpgsql

Vorrei creare una funzione PostgreSQL che faccia qualcosa di simile al seguente: CREATE FUNCTION avg_purchases( IN last_names text[] DEFAULT ‘{}’ ) RETURNS TABLE(last_name text[], avg_purchase_size double precision) AS $BODY$ DECLARE qry text; BEGIN qry := ‘SELECT last_name, AVG(purchase_size) FROM purchases WHERE last_name = ANY($1) GROUP BY last_name’ RETURN QUERY EXECUTE qry USING last_names; END; $BODY$ […]

Sostituisci stringhe vuote con valori nulli

Sto riavvolgendo un enorme tavolo per conteggi in una nuova tabella, dove voglio cambiare tutte le stringhe vuote su NULL , e typecast anche alcune colonne. Ho letto alcuni dei post e non sono riuscito a trovare una query, che mi permettesse di farlo su tutte le colonne in una singola query, senza utilizzare più […]

Passa più valori in un singolo parametro

Voglio chiamare una funzione passando più valori su un singolo parametro, in questo modo: SELECT * FROM jobTitle(‘270,378’); Ecco la mia funzione. CREATE OR REPLACE FUNCTION test(int) RETURNS TABLE (job_id int, job_reference int, job_job_title text , job_status text) AS $$ BEGIN RETURN QUERY select jobs.id,jobs.reference, jobs.job_title, ltrim(substring(jobs.status,3,char_length(jobs.status))) as status FROM jobs ,company c WHERE jobs.”DeleteFlag” […]

Postgres FOR LOOP

Sto cercando di ottenere 25 campioni casuali di 15.000 ID da un tavolo. Invece di premere manualmente la corsa ogni volta, sto provando a fare un ciclo. Che capisco perfettamente non è l’uso ottimale di Postgres, ma è lo strumento che ho. Questo è quello che ho finora: for i in 1..25 LOOP insert into […]

funzione pseudo_encrypt () in plpgsql che richiede bigint

Sto lavorando su un sistema che genera ID casuali come nella risposta n. 2 qui . Il mio problema è che la funzione pseudo_encrypt () menzionata funziona con int not bigint. Ho provato a riscriverlo ma restituisce sempre lo stesso risultato: CREATE OR REPLACE FUNCTION pseudo_encrypt(VALUE bigint) returns bigint AS $$ DECLARE l1 bigint; l2 […]

Funzione PostgreSQL che restituisce più set di risultati

È ansible restituire più set di risultati da una funzione di Postgres, come in MSSQL: CREATE PROCEDURE test AS SELECT * FROM first_table SELECT * FROM second_table

ERRORE: stringa quotata non terminata in corrispondenza o vicino

Mentre eseguo il codice di trigger mostrato sotto usando ANT, sto ottenendo l’errore org.postgresql.util.PSQLException: ERROR: unterminated quoted string at or near “‘ DECLARE timeout integer” Position: 57 Sono in grado di eseguire con successo il codice seguente tramite PGADmin (Fornito da postgres) e l’utilità della riga di comando “psql” e la funzione di triggerszione viene […]

Posso fare in modo che una funzione plpgsql restituisca un intero senza usare una variabile?

Qualcosa come questo: CREATE OR REPLACE FUNCTION get(param_id integer) RETURNS integer AS $BODY$ BEGIN SELECT col1 FROM TABLE WHERE id = param_id; END; $BODY$ LANGUAGE plpgsql; Vorrei evitare un DECLARE solo per questo.

DROP FUNCTION senza conoscere il numero / tipo di parametri?

‘CREATE OR REPLACE FUNCTION somefunction’ tutte le mie funzioni in un file di testo con ‘CREATE OR REPLACE FUNCTION somefunction’ . Quindi, se aggiungo o modifico alcune funzioni, inserisco semplicemente il file in psql. Ora, se aggiungo o rimuovo i parametri su una funzione esistente, crea un sovraccarico con lo stesso nome e per cancellare […]