Newsgroup: it.comp.os.linux.sys
Titolo: Re: [ORACLE] Stored Procedure per analisi caratteri.

 sono un po' arrugginite... any ideas?
Non c'� bisogno di scomodare PL/SQL, si fa tutto in SQL usando
REGEXP_REPLACE.
Una roba del tipo:
select regexp_replace(nome_prodotto,'[^A-Z0-9]','_') from prodotti;
Poi le regexp le conosci meglio di me...
	Y.

 
Forse � meglio usare direttamente l'url encoding per evitare possibili 
collisioni.
Una rapida ricerca mi ha rivelato l'esistenza in Oracle di una procedura 
UTL_URL.escape che potrebbe fare al caso vostro.

 Poi le regexp le conosci meglio di me...
sai che non capisco una cosa e ti faccio una domanda idiota: ma questo
ti va a scrivere sulla tabella, o semplicemente ti restituisce un output
formattato in un certo modo?
-- 
echo onailimissaM | awk 'BEGIN { FS = "" }
{ for (i = NF; i >= 1; i-- )
  printf $i }'; echo

 Ti restituisce solo l'output.
ok ... provo a sparare a zero: non ti puoi fare una 'view' che contiene
quella URL purificata e quindi la webaplicascion sarà referenziata sulla
view piuttosto che sulla tabella vera?
L'ho sparata la minchiata o può funzionare?


 view piuttosto che sulla tabella vera?
L'idea della view è buona. Se il database è 11.x, un'idea ancora
migliore sarebbe quella di usare una virtual column.

 anche il di lui capo gia' che ci siamo.
L'URL dev'essere per forza "parlante"? Non si pu� usare l'ID del
prodotto (che esiste, spero).


già parli difficile per me :) Conosco poco Oracle.
Comunque una 'view' ha impatto sulle prestazioni? Oppure ci sono
meccanismi di caching per attutire secondo te, o addirittura Oracle si
elabora i dati della view in anticipo? .... chissà .... sono un DBA
veramente da strapazzo.
Cosa fa di bello la virtual column?
p.s.: si è fatto un gran parlare del fatto che in MySQL mancavano le
view e le stored procedure. Adesso che ci sono mi piacerebbe vedere
una applicazione per mysql, che sia una, che faccia uso di view e/o
SP :)
--
Massimiliano


però ha ragione yossarian. La traduzione delle URL rischierebbe di
creare associazioni che potrebbero non essere sempre biunivoche! Mo'
tu non avresti bisogno dell'esempio perché non sei nato ieri e capisci
ciò che voglio dire. Comunque poniamo caso tu hai l'azienda "agora" e,
porca puttana, hai anche l'azienda "agorà" (con l'accento sulla a e tu
non vuoi l'accento sulla a).
tramite la traduzione dell'URL ti diventano entrambe agora.
Ergo: non puoi tradurre le URL. Devi usare un altro metodo.

 sono un po' arrugginite... any ideas?
Ma se poi questa URL così "purificata" viene usata all'interno della
webapp per andare a ricercare qualcosa nel DB, dove è memorizzata con
i caratteri originali, non funziona più una cippa, o sbaglio? A cosa
serve questo URL così generato? Se hai una vaga idea del flusso
dell'applicazione forse si riesce a consigliarti meglio...
bye!

 i caratteri originali, non funziona pi� una cippa, o sbaglio?
Sbagli, basta riapplicare la funzione:
select * from prodotti where
regexp_replace(nome_prodotto,'[^A-Z0-9]','_') = url;

 
Noi la licenza l'abbiamo pagata (enterprise basic): poi il cliente ha 
detto "datemi solo la web app che al db ci pensa il mio sistemista..."

 sono un po' arrugginite... any ideas?
Di male in peggio.
Questo è un approccio leggermente più corretto e chi scrive roba web 
dovrebbe saperlo.
Fagli usare questa roba nella loro webapp e risolvi.
http://en.wikipedia.org/wiki/Percent-encoding

 qualcuno ha pagato la licenza...
io vedere soldi, tu vedere stored procedure e cammello :)
Però non può essere una scusa per tutto. Ad esempio sulla
documentazione del software le comunità che operano in ambito licenza
GPL si dovrebbero impegnare un tantino di più.

 regexp_replace(nome_prodotto,'[^A-Z0-9]','_') = url;
Sì, ma questo presuppone che tu sappia dove e come rimettere questa
query nel codice ;^)
bye!

 e se ne verranno fuori con un'altra soluzione.
Tremo al pensiero della genialata ;^)
bye!

 query nel codice ;^)
Cos� la discussione regredisce al punto di partenza.
Questo problema si risolve con la view (o con quell'altro sistema su
oracle che non conosco). 
L'unico problema � garantire sempre la biunivocit� dei dati e quindi
bisogna studiarsi bene la regexp e vedere se � possibile ovviare in
qualche modo.
