Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-12-2017, 19:43   #1
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
[SQL Oracle] Query con uno strano comportamento

Il mio cliente ha deciso di scrivere una singola query di circa 1000 linee.
Non so come l'abbiano partorita, ma funziona in una loro applicazione.

Ora, la query deve essere inserita in una nuova applicazione Java. Io sono incaricato di farlo.
Ecco la sorpresa:
- se eseguo la query tramite JDBC, la query fallisce dicendo che non esiste una tabella (credo sia qualcosa di temporaneo creato all'interno della query);
- se la eseguo via SQL Developer va tutto bene;
- se la salvo e la eseguo ancora via SQL Developer, continua ad andar bene;
- se la eseguo via sqlPlus, la query fallisce esattamente come Java, dicendo che non esiste una tabella;
- se la salvo e la eseguo ancora via sqlplus, la query continua a fallire;

Non credo sia necessario pubblicare una query di 1000 linee senza nemmeno avere la possibilita' di sapere la struttura del database.
Credo che prima di tutto la domanda debba essere: com'e' possibile? Perche' l'applicazione del cliente riesce ad eseguirla - cosi' come SQL Developer (che e' scritto in Java, fra l'altro) - e fallisce con Java e con sqlplus?

Non riesco ad immaginarmi una query simile, ma non sono un grande esperto. Penso che il problema sia dovuto alla creazione di tabelle temporanee all'interno della query, ma questo non mi sembra possa giustificare una simile differenza di comportamento....

qualche idea?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2017, 20:33   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Scusate, mi rispondo da solo. Ho fatto dei test con sqlplus fino a quando sono riuscito a far eseguire la fat query.
Il problema stava nei settaggi di sqlplus. La fat query ovviamente non e' su una sola riga; inoltre vi erano dei commenti.

Ho eliminato i commenti e impartito questi comandi a sqlplus prima di eseguire la query:

set sqlblanklines on
set sqlterminator ';'

Fatto questo, la query e' stata eseguita correttamente.
Evidentemente il problema erano le linee vuole nella query ed il carattere di terminazione.

Ovviamente ora devo tornare ad affrontare il problema in ambito Java, e mi sa che, viste le premesse, non sara' facilissimo...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2017, 21:25   #3
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ok, questo e' l'ultimo
Anche per Java JDBC vale lo stesso problema: non gli piacciono le righe vuote nella query. Anzi, non credo nemmeno che nella query che si passa a jdbc siano ammessi i caratteri di a capo, ma non ne sono sicuro.
Per prova li ho eliminati, sostituendoli con uno spazio per evitare che identificatori a fine ed inizio linea potessero incollarsi ed e' andato tutto!

Ho provato a cercare qualcosa su internet (svogliatamente direi, visto che ho gia' la soluzione) ma non ho trovato questa informazione: quindi, cari colleghi, state attenti a dare in pasto a JDBC una query spezzata su piu' linee

Grazie lo stesso a tutti!
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2017, 08:35   #4
Bazzilla
Senior Member
 
L'Avatar di Bazzilla
 
Iscritto dal: Dec 2010
Messaggi: 2552
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Grazie lo stesso a tutti!
Grazie a te!
__________________
PC: Lenovo Legion 5 15ACH6H Ryzen 7 5800H - RTX 3070
CONSOLE: PS5 (Fibbione) - Xbox Series X (Fibbione)
Bazzilla è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2017, 05:23   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Per me è inconcepibile che non si possano usare quanto meno linee vuote per spezzare query complesse, visto che SQL è un linguaggio abbastanza verboso e comunque non è affatto raro che una query assuma certe dimensioni.

Bah...

Comunque grazie per aver riportato la tua esperienza!
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2017, 17:11   #6
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Hai perfettamente ragione.
Comunque l'importante e' saperlo, cosi' da preprocessare la stringa prima di passarla a jdbc. Strano pero' che la cosa non venga nominata nella documentazione ufficiale (o magari mi e' scappata).

Ovviamente jdbc ha anche altri problemi, per esempio non e' in grado di eseguire degli script sql, ma questo gia' si sapeva.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Gli USA e la NASA non vogliono perdere l...
Il nuovo iPhone 17 Air ha già un clone A...
Una capsula SpaceX Dragon ha acceso i mo...
3 nuovissime offerte sottocosto pi&ugrav...
Robot aspirapolvere Roborock Q7 M5 a pre...
Offerte sui TV LG su Amazon: OLED evo e ...
Il Galaxy Z Fold 7 è un successo:...
Amazon abbatte i prezzi hardware: come p...
Eureka J15 Ultra imbarazza la concorrenz...
ChatGPT: il piano Free diventa più...
Il prossimo top di gamma di Vivo sarà il...
Sony mostra in anteprima la propria tecn...
Dreame A3 AWD: a IFA 2025 debutta il rob...
OpenAI, il chip proprietario per l'AI &e...
OnePlus e Hasselblad si separano: una nu...
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: 14:04.


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