[0A000] ERROR: cross-database references are not implemented:

Es steht definitiv der richtige Database Name for dem public.table teil:

also db name in postgresql:
MyDatabase

string in insert statement:
MyDatabase.public.tablename

Müsste also gehen. :sunglasses:

hab jetzt, sogar die DSN so genannt:
MyDatabase

mmh…

der name des DSN spielt keine rolle - außer fuer deinen ODBC-Connection komponente im connection string … da solltest du den richtigen DSN angeben :slight_smile:

ansonsten kann ich dir nur sagen, dass ich auf pg 8.3 und 8.4 die fully-quallified names getestet habe …

es kann eigentlich garnicht anders sein, als dass der name der DB nicht wirklich so ist wie du glaubst :wink:

schau nochmal in ruhe nach - postgres - dsn-einstellung - ob du auch den richtigen dsn nimmst g

Select funktioniert übrigends auf der Connection! :slight_smile:

Nur Insert eben nicht! :confused:

Könnte es am ODBC client liegen? Muß ich hier einen bestimmten installieren?
In der PostgreSQL Hilfe stehen ja einige:

ODBCng ODBC An alternative ODBC driver - http://projects.commandprompt.com/public/odbcng/
psqlODBC ODBC The most commonly-used ODBC driver - http://psqlodbc.projects.postgresql.org/______________________________________________________________________________________________________________

habe gerade mittels pgAdmin ein Insert abgesetzt das ebenfalls einen fully-qualified name hat und das schlägt bei mir genauso fehl:
INSERT INTO MyDatabase.public.myTestTable (id, _timestamp, description, lock) VALUES (“gfgd”, null, null, 0)

ERROR: cross-database references are not implemented: "
mydatabase.public.mytesttable"
SQL Status:0A000

mmmmhh…
Evtl. liegts ja am Case … bin am prüfen…

http://www.initd.org/

Hi @all!

Man darf beim Anlegen der Datenbank zwar Großbuchstaben benutzen, aber beim Insert sucht PostgreSQL nur nach dem Datenbank Namen in Kleinbuchstaben!!!
Ja das gibt es ja nicht!!! Wer macht denn sowas?!
PostgreSQL ist also nicht Case Sensitiv!!! Oder was???

Habe die Datenbank nochmal mit “kleinbuchstaben” angelegt und schon funktioniert alles! Hurra!

Ich glaubs ja nicht! Das hat mich jetzt einen ganzen Tag gekostet!!! bzw. die Firma!

also vielen Dank (symbiont etc.) für die Hilfe
J.R. :smiley:

PostgreSQL ist nicht case-sensitive. Im Normalfall ist es aber egal, ob du Datenbanken, Tabellen oder Spalten groß oder klein schreibst. Die Datenbank macht aus allen Bezeichnern die klein geschriebene Version.

Der einzige Fall wo das nicht der Fall ist: wenn du den Bezeichner in Anführungszeichen setzt, wie es der SQL-Standard haben will.

Du hast anscheinend den Namen ohne “” erstellt und der Treiber für ODBC gibt das mit “” an - daher gibt es zwei verschiedene Bezeichner.

Ja - und das gilt (zum bei Postgres) - auch fuer alle anderen Objekte - wie hier dem Datenbankname … ich habe variationen mit der Grosskleinschreibung vorhin bei meinen Tests auch probiert - aber nur bei der Tabelle - da erhielt ich allerdings auch nur den Fehler, dass er die Table nicht kennt - so wie es sein soll.

Das er die DB gequotet haben koennte - daran hab ich nun auch nicht gedacht :slight_smile:

Nee andersrum … die quotes kennt der SQL-Generator nur fuer Tables … da gibt es auch Eigenschaften wo man festlegen kann wie die Quotes aussehen - damit er dann sowas wie database.schema.“MyTable” oder database.schema.[MyTable] erzeugen kann - je nach backend

Er hat nur blöderweise die DB mit einem Gequoteten Namen erzeugt - sehr wahrscheinlich über PGAdmin - wenn du da Grossbuchstaben verwendest, wird der Name von PGAdmin mit Quotes in das CREATE DATABASE statement eingesetzt.

wenn man selbst CREATE DATABASE in der shell anwendet, wird - wie du schon sagtest - die Grosskleinschreibung nicht beruecksichtigt