Ho bisogno di creare una funzione che eseguirà una query e restituirà i risultati con il nome della tabella e il nome della colonna come arugmenti dati alla funzione. Al momento ho questo:Funzione query dinamica Postgres
CREATE OR REPLACE FUNCTION qa_scf(tname character varying, cname character varying)
RETURNS SETOF INT AS
$BODY$
BEGIN
RETURN QUERY SELECT * FROM tname WHERE cname !='AK' AND cname!='CK';
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
Questo mi dà l'errore "Relation 'TNAME' des non esiste" quando viene eseguito. Sono nuovo nella funzione di creazione per Postgres, quindi qualsiasi aiuto è apprezzato. Mi sento come se il return int fosse sbagliato, ma non so cos'altro mettere per fare restituire tutte le colonne per le righe restituite. Grazie!
Cosa dovrei dichiarare come risultato? –
Non interpolare mai i valori in istruzioni SQL dinamiche senza utilizzare la funzione quote_FOO() appropriata o si apre la porta agli attacchi di iniezione. – dbenhur
Questo è un database interno. –