linux user group brescia

immagine del castello

Archivio della mailing list

Un problemino con Perl e Postgres

Giuseppe Corbelli cowo a lugbs.linux.it
Mer 18 Lug 2001 19:05:06 UTC
On Tue, 17 Jul 2001, DisKre Panza wrote:
> lunedì 16 luglio 2001 DisKre Panza ha scritto :
>
> > > Quota gli apici. Qualcosa del tipo
> > > s/\'/\\\'/g foreach (@testo)
>
> >    Grazie! Mo` cce provo subbeto!
>
>    Ho provato direttamente da console, e funziona!
>
>    Decisamente, devo  ancora entrare  nella filosofia  unix... le
> regexp come  'standard'... ah, maledetto dos!...  terro` presente
> per il futuro...
Rispondo anche alla mail di prima. Non e' postgre che interpreta le
regexp. Semplicemente supponi di avere una routine perl di questo tipo:

insert ('zumpappa');

gli apici vengono usati dal perl per delimitare l'argomento. Quindi quando
poi passa al backend postgre aggiunge i separatori all'inizio e alla fine
del parametro. Se non hai modificato nulla di dflt il separatore e'
l'apice quindi il postgre si becca un parametro del tipo
'zumpappa' che finisce nel codice sql.
Se invece vuoi inserire "l'avvocato del diavolo" devi fare in modo che:
1) il perl prenda tutta la stringa come input => devi quotare l'apice
2) il postgre deve interpretare l'apice come semplice dato, quindi
nell'output che va al postgre l'apice deve essere quotato.

La routine va a finire tipo questa
insert ('l\\\'avvocato del diavolo');
e al postgre arriva 'l\'avvocato del diavolo'

Almeno con interbase una cosa del genere funzionava.

--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.4.3-xfs
  -<! God Knows How Long I Tried To Change Fate !>-
  		Blind Guardian - Mordred's Song




Maggiori informazioni sulla lista Lug