Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2009, 15:10   #1
antony85
Member
 
Iscritto dal: Jan 2006
Messaggi: 199
[PL/SQL]Trigger nn funzionante

salve,utilizzo il seguente trigger in modo ke controlli che i valori inseriti nella tabella zb.nome non siano gli stessi presenti in za.nome...il trigger viene compilato,ma al momento dell'esecuzione,oracle presenta l'errore
"superato numero massimo di livelli sql ricorsivi(50)"
come posso risolvere??

CREATE OR REPLACE TRIGGER tr4
BEFORE INSERT ON zb
FOR EACH ROW
DECLARE
CURSOR c1 IS (SELECT nome FROM za);
varc1 c1%rowtype;
app EXCEPTION;
flag boolean:=FALSE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO varc1;
EXIT WHEN c1%NOTFOUND;
IF :NEW.nome = varc1.nome THEN
RAISE app;
END IF;
END LOOP;
IF flag= FALSE then
INSERT INTO zb(nome,prezzo_singolo)VALUES(:NEW.nome,:NEW.prezzo_singolo);
COMMIT;
END IF;
EXCEPTION
WHEN app THEN
Raise_Application_Error(-20002,'Errore parola gia presente in za');
END;
__________________
Asus P5B-Intel Core Duo E6400-Kingston 1GB 667-Sapphire X1900gt rev.2-Maxtor 200gb Sata 2-Ali 450w schifoso in attesa di enermax 400
antony85 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 17:55   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Non si capisce se devi farlo come esercizio o se ti serve veramente...
Comunque, in qualsiasi caso

dentro un trigger BEFORE INSERT on zb(o AFTER INSERT) non bisogna scrivere di nuovo uno statement di
INSERT INTO zb, altrimenti il motore entra in ricorsione e viene fuori quell'errore.

COMMIT dentro un trigger manco a parlarne (ma tanto se togli la insert di cui prima magari non ti viene neppure voglia di fare la commit...)
Se sai come funzionano le transazioni capisci anche quanti danni puo' fare un COMMIT nascosto dentro un Trigger.

Avere risolto con un cursore tale trigger significa peggiorare di tanto qualcosa che si puo' fare con un semplice SELECT di controllo di esistenza di quanto stai testando.


A mio avviso una soluzione migliore sarebbe un TRIGGER INSTEAD OF, nel quale potresti fare una INSERT... WHERE NOT EXISTS, controllare se sei riuscito ad inserire altrimenti sollevi l'eccezione.
Nessun cursore, 4/5 righe di codice
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 20:59   #3
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Si davvero, io me ne sono stato zitto per non sembrare un cagacazzo ma... perchè un trigger per queste cose?!?
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2009, 01:44   #4
antony85
Member
 
Iscritto dal: Jan 2006
Messaggi: 199
chiaramente è giusto x uno scopo didattico...x cercare di esercitarsi qnt piu possibile su problemi autoinventati..
__________________
Asus P5B-Intel Core Duo E6400-Kingston 1GB 667-Sapphire X1900gt rev.2-Maxtor 200gb Sata 2-Ali 450w schifoso in attesa di enermax 400
antony85 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2009, 14:51   #5
antony85
Member
 
Iscritto dal: Jan 2006
Messaggi: 199
scusami ma a livello di sintassi come devo scrivere "where not exist"?
__________________
Asus P5B-Intel Core Duo E6400-Kingston 1GB 667-Sapphire X1900gt rev.2-Maxtor 200gb Sata 2-Ali 450w schifoso in attesa di enermax 400
antony85 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2009, 15:22   #6
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da antony85 Guarda i messaggi
scusami ma a livello di sintassi come devo scrivere "where not exist"?
Qualcosa tipo

Quote:
INSERT INTO zb (nome, prezzo_singolo)
SELECT :NEW.nome,:NEW.prezzo_singolo
FROM dual
WHERE NOT EXISTS (SELECT 1 FROM za WHERE za.nome=:NEW.nome)
Dopo questa istruzione puoi valutare quante righe sono state inserite, ovvero 0 oppure 1 (la dual ha una sola riga, quindi al massimo sara' inserita 1 riga, proprio quella che vuoi tu).
E prendere di conseguenza la decisione se sollevare l'eccezione oppure no.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2009, 16:20   #7
antony85
Member
 
Iscritto dal: Jan 2006
Messaggi: 199
grazie mille gugo
__________________
Asus P5B-Intel Core Duo E6400-Kingston 1GB 667-Sapphire X1900gt rev.2-Maxtor 200gb Sata 2-Ali 450w schifoso in attesa di enermax 400
antony85 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2009, 17:28   #8
antony85
Member
 
Iscritto dal: Jan 2006
Messaggi: 199
ok,ho risolto il problema di prima(semplicemente mi è bastato togliere la insert nel trigger(ke generava il problema ricorsivo)).

Ora ho un altro problema,il quale gestisce le date:
in pratica come input ho una data completa(20-gen-85) e voglio effettuare dei controlli sopra,ovvero ke se la data è compresa in un periodo(ovvero dal 1 gennaio al 31 marzo) fai questo,altrimenti se compresa in un altro periodo(1 aprile 31 giugno)fai quest'altro.il problema è ke la data incorpora anche il campo anno,ke a me da problemi nei confronti coi periodi(i quali sono senza anno),quindi magari avrei bisogno di caratteri "jolly" per poter fare il confronto...cm si fa?
__________________
Asus P5B-Intel Core Duo E6400-Kingston 1GB 667-Sapphire X1900gt rev.2-Maxtor 200gb Sata 2-Ali 450w schifoso in attesa di enermax 400
antony85 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2009, 13:42   #9
antony85
Member
 
Iscritto dal: Jan 2006
Messaggi: 199
up
__________________
Asus P5B-Intel Core Duo E6400-Kingston 1GB 667-Sapphire X1900gt rev.2-Maxtor 200gb Sata 2-Ali 450w schifoso in attesa di enermax 400
antony85 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2009, 15:28   #10
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Prova a studiare la funzione TO_CHAR(di una data), e con quella potrai poi giocare con la BETWEEN per i periodi.

Comunque non so se hai capito che la soluzione con il cursore non e' soddisfacente.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
Anche l'ISRO ha rilasciato alcune inform...
La NASA mostra le nuove immagini della c...
Superati 13.300 MT/s per DDR5: ad ASUS e...
L’evoluzione dell’IA nelle imprese: la v...
Le storie in evidenza di Instagram torna...
Addio GeForce RTX 5060 e Radeon RX 9060?...
Arriva Hisense Déco TV S5Q, estet...
Aggiornata TOP500, la classifica degli H...
Noctua NH-D15 Chromax.black è rea...
NVIDIA aggiorna DGX Spark: nuovo kernel,...
Con Work IQ, Copilot per Microsoft 365 i...
Azure Cobalt 200: svelata la nuova CPU A...
Intel a tutto tondo: tra processi in ram...
AMD FSR Redstone arriverà ufficia...
L'Olanda 'cede' alla Cina: retromarcia t...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v