[opengeodb] Geo Daten von Deutschland
Trautmann Martin
Martin.Trautmann at Micronas.com
Don Jul 19 12:59:12 CEST 2007
> >> Im Moment parken die auf http://fa-technik.adfc.de/Codierung/
> >> opengeodb.pl
>
> Hallo,
>
> ich habe unter der angegebenen Adresse die gezippte Datei
> opengeodb-0250_2007-05-22.sql Dabei bin ich auf folgende Probleme
> gestoßen:
>
> 1. Die Tabelle geodb_textdata hat einen CHECK-CONSTRAINT
>
> check (
> (
> (
> (text_type = 500100000 or text_type = 500100004 or
> text_type = 500100002 or text_type = 500700000 or
> text_type = 500700001 or text_type = 500800000 or
> text_type = 500800000 or text_type = 500900000
> ) and
> text_locale like '__%' and
> is_native_lang is not null and
> is_default_name is not null
> ) or
> (
> (text_type = 500100001 or text_type = 500100003 or
> text_type = 500300000 or text_type = 500500000 or
> text_type = 500600000
> ) and
> text_locale is null and
> is_native_lang is null and
> is_default_name is null
> )
> ) and
> (
> (valid_since is null and date_type_since is null) or
> (valid_since is not null and date_type_since is not null)
> )
> )
>
> Das bedeutete u. a., dass in der Spalte text_type, der 2. Spalte der
> Tabelle wohlgemerkt, nur die aufgeführten Werte 500100000, 500100004,
> ... erlaubt sind. Das zweite INSERT-Statement in Zeile 212 lautet jedoch
>
> INSERT INTO geodb_textdata
> VALUES(106,400200000,'2',null,null,null,null,null,'3000-01-01',300500000);
>
> will also 400200000 in die Spalte 2 schreiben, was wegen des CHECK
> fehlschlägt. Dieses Problem betrifft sehr viele Zeilen.
Hallo Ingmar,
Besten Dank für diese Rückmeldung - auf so etwas hatte ich schon lange gehofft. Demzufolge muss natürlich die 400200000 dem obigen CHECK hinzugefügt werden.
> 2. Laut DDL sind die Primärschlüssel integer, bei den Daten gibt es aber
> viele Statements mit größeren Werten, z. B. in Zeile 224.
>
> 3. Laut DDL hat die Tabelle geodb_intdata 7 Spalten. Es gibt aber
> Statements mit 8 Werten (vermutlich bei allen mit dieser Tabelle), z. B.
> in Zeile 232.
Autsch - fuer Oesterreich / Ausland habe ich hier ueberall 10stellige Ergaenzungen vorgenommen. Fuer deutsche Ortsteile verwende ich derzeit bis 12stellige Nummern (die sind noch nicht in der opengeodb). Fuer Strassen brauche ich derzeit 13stellige Nummern.
Gibt's sonstige Begrenzungen auf z.B. max. 15 Stellen? 16 Bits bieten 65 000 Eintraege, mit Vorzeichen nur die Haelfte. Das erscheint mir viel zu wenig fuer eine opengeodb.
Mit 64-bit-Integer waer's kein Problem. Mit 32-bit signed komme ich nur bis 2 000 000 000. Von daher sollte ich die id wohl entsprechend eindampfen?
Wie ist Integer in SQL ueberhaupt definiert?
> Wie kommt es zu diesen Fehlern und was empfehlen die Insider als
> Workaround?
Probleme melden, Vorschlaege unterbreiten, Fehler korrigieren (lassen) :-)
Schoenen Gruss
Martin
Micronas GmbH
Company Headquarters / Sitz der Gesellschaft: Freiburg i. Br. - Municipal Court of / Amtsgericht: Freiburg i. Br. HRB 428. VAT ID / USt-IdNr.: DE 811127087
Management / Geschäftsführung: Dr. Wolfgang Kalsbach, Chairman / Vorsitzender, Hans-Jürgen Désor, Klaus Heberle,
Nikolaus V. Kaeppeler, Wilfried Lowinski, Dirk Wieberneit, Wolfgang Kühn - Chairman of Supervisory Board / Vorsitzender des Aufsichtsrats: Heinrich W. Kreutzer