Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Zenfone 11 Ultra ha tantissime qualità interessanti, fra cui potenza da vendere, un display di primissimo livello, un comparto audio potente e prestazioni di connettività fra le migliori della categoria. Manca però dell'esclusività del predecessore, che in un settore composto da "padelloni" si distingueva per le sue dimensioni compatte. Abbiamo provato il nuovo flagship ASUS, e in questa recensione vi raccontiamo com'è andata.
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Abbiamo partecipato ad Appian World 2024, evento dedicato a partner e clienti che si è svolto recentemente nei pressi di Washington DC, vicino alla sede storica dell’azienda. Nel festeggiare il 25mo anniversario, Appian ha annunciato diverse novità in ambito intelligenza artificiale
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Primo contatto con il monitor Lenovo ThinkVision 3D 27 che grazie a particolari accorgimenti tecnici riesce a ricreare l'illusione della spazialità tridimensionale senza che sia necessario utilizzare occhialini
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: 2524
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: 26107
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


Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone' Recensione Zenfone 11 Ultra: il flagship ASUS ri...
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA Appian: non solo low code. La missione è ...
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini Lenovo ThinkVision 3D 27, la steroscopia senza o...
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
eFootball taglia il traguardo dei 750 mi...
MS-DOS 4.0 diventa open source: Microsof...
Micron riceverà 6,1 miliardi di d...
STALKER 2 Heart of Chornobyl: nuovo trai...
Google: ancora un rinvio per lo stop ai ...
Lotus Evija X è la seconda auto elettric...
NIO e Lotus annunciano una grossa novit&...
Esclusive PlayStation su Xbox? Sì...
CATL: una nuova batteria per auto elettr...
TikTok al bando negli USA? Biden firma, ...
Taglio di prezzo di 150 euro per SAMSUNG...
Utenti Amazon Prime: torna a 148€ il min...
Microsoft sfiora i 62 miliardi di dollar...
Coca-Cola al cloud con un pizzico di IA:...
Prodotti TP-Link Tapo in offerta: videoc...
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: 04:59.


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