Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Cursore in Oracle
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
horus
Macchinista
Macchinista


Registrato: 22/03/05 09:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 27 Ott 2005 13:54    Oggetto: * Cursore in Oracle Rispondi citando

Supponiamo di avere un'applicazione web che si appoggia ad un db Oracle. Per un'estrazione/elaborazione dei dati è stata fatta una procedura in pl/sql che fa tutto il lavoro restituendo il "recordset" bello e pronto.

Il problema:
nella procedura c'è una diga del tipo:
Codice:
open nome_cursore for stringa_sql;

Nel db di prova (8.1.6.0) gira senza problemi in produzione (8.0.4.4) non va.

Domande:
1) non essendoci altre differenze a parte la versione credo che il malfunzionamento sia da imputare a quello ma in rete non ho trovato molte notizie a riguardo, qualcuno mi conferma/smentisce l'ipotesi?

2) ammesso che non si possa usare quel comando come si può fare in alternativa ad aprire un cursore con una query variabile?

P.S.: eventuali risposte del tipo aggiorna il database non saranno ammesse in quanto non applicabili.
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11566
Residenza: Tokelau

MessaggioInviato: 28 Ott 2005 14:46    Oggetto: Rispondi citando

Sarebbe bello sapere l'errore che ti da... ed anche controllare che la query che usi in "stringa_sql" sia corretta, hai provato con SQL+ ad eseguirla? Controllato anche l'utente ed i suoi privilegi?
Scusa se sembrano risposte banali ma quasi sempre i problemi come il tuo si risolvono con questi controlli... Smile
Top
Profilo Invia messaggio privato HomePage
horus
Macchinista
Macchinista


Registrato: 22/03/05 09:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 28 Ott 2005 15:06    Oggetto: Rispondi citando

Cercando un po' in giro credo di aver trovato che i cursori dinamici sono stati aggiunti dalla versione 8i (che inizia con la 8.1.5) quindi semplicemente non si può fare.

Ho anche trovato che nelle precedenti versioni l'unico modo di fare query dinamiche era utilizzare dbms_sql. In effetti con quel metodo funziona (perciò escludo errori nella query) ma è più lento e soprattutto devo definire i tipi delle colonne del cursore prima di eseguirlo.

Per il momento mi arrangio così ma se qualcuno ha idee alternative a dbms_sql ben venga.

Edit: per la cronaca l'errore era
Citazione:
PLS-00103: Encountered the symbol "stringa_sql" when expecting one of the following:
select
Top
Profilo Invia messaggio privato
happy_dolphin
Comune mortale
Comune mortale


Registrato: 08/11/05 16:44
Messaggi: 2

MessaggioInviato: 08 Nov 2005 17:00    Oggetto: Rispondi

Forse una soluzione alternativa e eseguire la creazione dinamica di una vista basandosi sulla query dinamica "CREATE OR REPLACE VIEW ecc.." + select dinamica

eseguire la creazione dello script nel linguaggio
prima del apertura del cursore

ed eseguire l'apertura del cursore sulla vista fissa e non sulla query dinamica.

es. SELECT * FROM <nome vista>
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi