Newsgroup: it.comp.os.linux.iniziare
Titolo: un esempio semplice semplice

Ciao a tutti
sto impazzendo dietro ad una situazione di questo tipo:
data una tabella:
CITTA
   name   | population | altitude
----------+------------+----------
 Roma     |      1e+06 |      100
 Istanbul |    1.5e+06 |      150
 Parigi   |      2e+06 |      200
 Berlino  |      3e+06 |      300
 Londra   |    2.5e+06 |      250
volendo creare una funzione che esegua:
SELECT name FROM citta WHERE altitude = 100;
ho tentato con:
CREATE OR REPLACE FUNCTION prova1 (citta, numeric)
RETURNS text AS
        'SELECT $
1.name
 WHERE $1.altitude = $2'
LANGUAGE 'SQL';
e per lanciarla:
SELECT prova1 (citta, 100) FROM citta;
e funziona perfettamente,
ma volendo passare come parametro TUTTO! cioé sia 'name' che 'citta'
che 'altitude' che '100'...
qual'é la sintassi esatta?! ho tentato di tutto e mi da gli errori
piú vari, l'ipotesi piú verosimile a questo punto mi sembra:
CREATE OR REPLACE FUNCTION prova1 (varchar, varchar, numeric)
RETURNS text AS
        'SELECT $1 WHERE $2 = $3'
LANGUAGE 'SQL';
SELECT prova1 (
citta.name
, citta.altitude, 100) FROM citta;
e l'errore che restituisce é:
psql:prova.sql:49: ERROR:  la funzione prova1(text, integer, integer)
non esiste
HINT:  No function matches the given name and argument types. You may
need to add explicit type casts.
qualcuno sa dirmi cosa diavolo si vuole sentire dire?!!!!
intanto grazie :-)

varana...@tiscali.it
 ha scritto:


non sono un'esperto ma sembrerebbe
che voglia questa dichiarazione di funzione
prova1(text, integer, integer)
e non questa
prova1 (varchar, varchar, numeric)
quindi
CREATE OR REPLACE FUNCTION prova1 (text, integer, integer)
ma ripeto non sono un'esperto...
saluti
andrea

andrea p wrote:

Vi prego non scriviamo un esperto con l'apostrofo, la parola esperto è
maschile! :) Altrimenti De Raadt si inventa che non solo gli utenti di
linux non baciano ragazze, ma poi non sanno neppure scrivere in
italiano ....
Perdonatemi ma proprio quell'apostrofo mi suona malissimo :)

Fantastico....funziona!
...potevo anche arrivarci da solo :-P
comunque ti ringrazio molto :-)
ciao-ciao

 Perdonatemi ma proprio quell'apostrofo mi suona malissimo :)
Visto che sei così sensibile allo scrivere corretto, prova a fare
anche tu un piccolo sforzo per "quotare" in maniera dignitosa: farai felice
un sacco di gente.
Grazie per la collaborazione
Antonio
-- 
  /¯\  |¯ \/ ¯|(*** !!! attenzione:  campo From alterato !!! ***)
 /¯_¯\ |¯|\/|¯| )-+-+-+-+-+-+-+-+-+---+---+-+-+-+-+---+-+---+-+(
/_/ \_\|_|  |_|(  |a|m|a|d|e|s|a|n|i(a|t)l|i|b|e|r|o(d|o|t)i|t| )
----------------)-+-+-+-+-+-+-+-+-+---+---+-+-+-+-+---+-+---+-+(

 Antonio
 
Sě .. vi prometto che farň del mio meglio per quotare decentemente :) 
Grazie 

 maschile! :) 
ti ringrazio per la segnalazione in effetti a volte si dimenticano le 
cose imparate con tanta fatica...(non solo questa)
ciao
andrea bruni

 un sacco di gente.
Hai sbagliato anche tu, un'sacco si scrive con l'apostrofo.
-- 
enos1976 

 Hai sbagliato anche tu, un'sacco si scrive con l'apostrofo.
Eh??? Ma quando mai?
Gli articoli indeterminativi sono un e uno per il maschile e una per il femminile
sacco è maschile, quindi si usa un e non serve l'apostrofo.
Pedonzolo
-- 
Computer e modem: 500 euro, con Mastercard.
Un mese di accesso a Internet: 20 euro, con Mastercard.
Usarli per rubare i dati di 40 milioni di carte di credito: non ha prezzo.
Ci sono cose che non si possono comprare.
Per tutto il resto, c'è Mastercard.


scartando l'ipotesi che tu stia scherzando (non vedo faccine) rimane il
dubbio che tu sia sotto effetto di CH3CH2OH, con il  nome che usi... viene
il dubbio. 
Occhio quindi ai controlli con il palloncino quando guidi ;)
Ciao
