Spatialite INSERT INTO errore

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Spatialite INSERT INTO errore

Luca Moiana

Ciao,

in Spatialite ver 4.1 sto cercando di aggiungere dei record da una tabella, con numero di campi diversi, in un'altra tabella. Entrambe con geom registrate e regolarmente funzionanti(MULTIPOINT Z, 4326,XYZ).

la sintassi che uso è questa:

insert into cassette (strno, NOTE, anno, geom)
select strno, NOTE, anno, geom
from daaggiungere
where COD_SOSTEG not null

l'errore è questo

SQL error: no such table: main.strno

Dove sbaglio?

grazie

L


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Spatialite INSERT INTO errore

a.furieri
On Fri, 17 Mar 2017 13:39:51 +0000, Luca Moiana wrote:

> Ciao,
>
> in Spatialite ver 4.1 sto cercando di aggiungere dei record da una
> tabella, con numero di campi diversi, in un'altra tabella. Entrambe
> con geom registrate e regolarmente funzionanti(MULTIPOINT Z,
> 4326,XYZ).
>
> la sintassi che uso è questa:
>
> insert into cassette (strno, NOTE, anno, geom)
> select strno, NOTE, anno, geom
> from daaggiungere
> where COD_SOSTEG not null
>
> l'errore è questo
>
> SQL error: no such table: main.strno
>
> Dove sbaglio?
>

ciao Luca,

servirebbe Maga Maghella con la sua sfera di cristallo per
indovinare l'arcano disponendo di cosi' scarne informazioni.
(anche se e' comunque abbastanza chiaro che nel tuo DB non
c'e' nessuna tavola o colonna di nome "strno", cosi' come
riporta il messaggio di errore).

forse anche un esperto di SQL privo di magici poteri
divinatori potrebbe esprimere un qualche parere utile,
ma gli servirebbe quanto meno conoscere come sono state
definite le due tavole "cassette" e "daaggiungere".

se non hai tenuto traccia degli statements CREATE TABLE
puoi comunque recuperare queste informazioni in questo
modo:

PRAGMA table_info(cassette);
PRAGMA table_info(daaggiungere);

ciao Sandro


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Spatialite INSERT INTO errore

Luca Moiana
Ciao Sandro,
grazie MILLE dell'analisi e dei consigli.
Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit aziendale, dove non ho diritti di amministrazione.
La tabella cassette è stata importata da GUI
La tabella daaggiungere da xls tramite spatialite GUI

Anche per le query utilizzo la GUI



________________________________
From: [hidden email] <[hidden email]>
Sent: Friday, March 17, 2017 4:12 PM
To: Luca Moiana
Subject: Re: [Gfoss] Spatialite INSERT INTO errore

On Fri, 17 Mar 2017 15:24:56 +0000, Luca Moiana wrote:
> Queste sono le informazioni che mi restituisce:
>

quindi le tue tavole sono state create suppergiu' cosi':

CREATE TABLE cassette (
     cassetteid INTEGER NOT NULL PRIMARY KEY,
     strno INTEGER,
     linea TEXT,
     sostegno TEXT,
     modello INTEGER,
     altezza NUMERIC,
     direzione TEXT,
     foro_mm NUMERIC,
     anno INTEGER DEFAULT (strftime('%Y','now','localtime')),
     NOTE TEXT,
     regione text);
SELECT AddGeometryColumn('cassette', 'geom', 4326, 'POINT', 'XY');

CREATE TABLE daaggiungere (
   PK_UID INTEGER NOT NULL PRIMARY KEY,
   AOT,
   COD_SOSTEG,
   COD_LINEA,
   Denom_line,
   Regione,
   PROVINCIA,
   COMUNE,
   N_sostegno,
   Tipo_soste,
   N_cassetta,
   Mod_casset,
   H_cassetta,
   Orientamen,
   Diam_foro,
   NOTE,
   anno,
   CENSIMENTO,
   verifica,
   col_18,
   strno text);
SELECT AddGeometryColumn('daaggiungere', 'geom', 4326, 'POINT', 'XY');

nota: il fatto che praticamente tutte le colonne
della tavola "daaggiungere" evitino di specificare
un data-type e' decisamente anomalo e non rispetta
i requisiti base della sintassi standard SQL; comunque
SQLite e' dataless "by design" e se ne frega allegramente.

insert into cassette (strno, NOTE, anno, geom)
select strno, NOTE, anno, geom
from daaggiungere
where COD_SOSTEG not null;

quando vado ad eseguire la tua query iniziale qua da
me gira tutto perfettamente liscio senza errori.
ed e' anche logico che sia cosi' visto che dopo tutte
esiste una colonna denominata "strno" su entrambe
le tavole.

conclusione: il fatto che sulla tua installazione
locale invece ritorni un messaggio:
"SQL error: no such table: main.strno"
non sembra essere giustificato.

tiro ad indovinare alla cieca: per caso stai usando
spatialite_gui ? e magari usi taglia&incolla per
copiare le tue query SQL da una parte all'altra ?
se e' cosi' tiene sempre presente che il taglia&incolla
abbastanza spesso puo' "sporcare" il testo introducendo
caratteracci strani (anche invisibili) che poi rendono
sintatticamente invalido lo statement SQL.

suppergiu' la stessa cosa potrebbe accadere se stai
usando Python (o qualsiasi altro linguaggio di
programmazione): non dare mai per scontato che le
stringa di query giunga tale e quale a SQLite, si
potrebbe sempre infilare nel mezzo il linguaggio
oppure il data connector cambiando le carte in
tavola senza che tu ne sia consapevole.

insomma, non sarebbe male saperne di piu' su quale
sistema operativo e quali strumenti stai usando.

ciao Sandro

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Spatialite INSERT INTO errore

a.furieri
On Mon, 20 Mar 2017 09:13:07 +0000, Luca Moiana wrote:
> Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit
> aziendale, dove non ho diritti di amministrazione.
> La tabella cassette è stata importata da GUI
> La tabella daaggiungere da xls tramite spatialite GUI
>
> Anche per le query utilizzo la GUI
>

Luca,

a questo punto l'ipotesi piu' probabile e' che si tratti
semplicemente di un pasticciotto causato dal copia-e-incolla
(a volte capita, specialmente su Windows).

puoi provare ad eseguire quella query evitando di usare
cut&paste (cioe' scrivendo tutto "a mano"), dopo avere
verificato scrupolosamente che la finestrella dove imposti
la query SQL sia assolutamente vuota.

in alternativa puoi sempre provare ad installare una
versione piu' recente della GUI, p.es. questa qua:

http://www.gaia-gis.it/gaia-sins/windows-bin-amd64-test/spatialite_gui-4.4.0-RC0-win-amd64.7z

ciao Sandro



_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Spatialite INSERT INTO errore

Luca Moiana
Ciao Sandro,


Grazie per la pazienza.


Ho scaricato la nuova GUI, riscritto la query a mano ma mi ritorna lo stesso errore:


"no such table: main.strno"

a questo punto devo escogitare un workaround.

________________________________
From: [hidden email] <[hidden email]>
Sent: Monday, March 20, 2017 12:05 PM
To: Luca Moiana
Cc: GFOSS.it
Subject: Re: [Gfoss] Spatialite INSERT INTO errore

On Mon, 20 Mar 2017 09:13:07 +0000, Luca Moiana wrote:
> Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit
> aziendale, dove non ho diritti di amministrazione.
> La tabella cassette è stata importata da GUI
> La tabella daaggiungere da xls tramite spatialite GUI
>
> Anche per le query utilizzo la GUI
>

Luca,

a questo punto l'ipotesi piu' probabile e' che si tratti
semplicemente di un pasticciotto causato dal copia-e-incolla
(a volte capita, specialmente su Windows).

puoi provare ad eseguire quella query evitando di usare
cut&paste (cioe' scrivendo tutto "a mano"), dopo avere
verificato scrupolosamente che la finestrella dove imposti
la query SQL sia assolutamente vuota.

in alternativa puoi sempre provare ad installare una
versione piu' recente della GUI, p.es. questa qua:

http://www.gaia-gis.it/gaia-sins/windows-bin-amd64-test/spatialite_gui-4.4.0-RC0-win-amd64.7z

ciao Sandro




_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Spatialite INSERT INTO errore

Luca Moiana
In reply to this post by a.furieri

Mistero risolto, nessun bug.
Nella definizione della foreign key di cassette ho invertito tabella con campo creando un pasticcio non da poco, ha ragione spatialite, la tabella strno non esiste!

Grazie per l'aiuto e per la pazienza.



________________________________
From: [hidden email] <[hidden email]>
Sent: Monday, March 20, 2017 12:05 PM
To: Luca Moiana
Cc: GFOSS.it
Subject: Re: [Gfoss] Spatialite INSERT INTO errore

On Mon, 20 Mar 2017 09:13:07 +0000, Luca Moiana wrote:
> Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit
> aziendale, dove non ho diritti di amministrazione.
> La tabella cassette è stata importata da GUI
> La tabella daaggiungere da xls tramite spatialite GUI
>
> Anche per le query utilizzo la GUI
>

Luca,

a questo punto l'ipotesi piu' probabile e' che si tratti
semplicemente di un pasticciotto causato dal copia-e-incolla
(a volte capita, specialmente su Windows).

puoi provare ad eseguire quella query evitando di usare
cut&paste (cioe' scrivendo tutto "a mano"), dopo avere
verificato scrupolosamente che la finestrella dove imposti
la query SQL sia assolutamente vuota.

in alternativa puoi sempre provare ad installare una
versione piu' recente della GUI, p.es. questa qua:

http://www.gaia-gis.it/gaia-sins/windows-bin-amd64-test/spatialite_gui-4.4.0-RC0-win-amd64.7z

ciao Sandro




_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017
Loading...