LabVIEWForum.de
Select liefert nicht alle fields aus einer Oracle DB - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Select liefert nicht alle fields aus einer Oracle DB (/Thread-Select-liefert-nicht-alle-fields-aus-einer-Oracle-DB)



Select liefert nicht alle fields aus einer Oracle DB - Cluster5020 - 18.03.2011 10:14

Guten Morgen.

Habe ein Problem mit Labview und meiner Oracle Datenbank.
Wenn ich einen Select Befehl "Select * FROM xy" ausführe, liefert er mir nur einige wenige Datenfelder als Ergebnis zurück. Der Offset im Array stimmt mit dem der Spalten in der Datenbank überein.
Dadurch entstehen Arrays wie dieses hier:
[attachment=32822]

In Wirklichkeit sind in dieser Tabelle 6 Spalten, welche alle belegt sind.
Ein "System" des Fehlers lässt sich nicht erkennen, zwar ist die 2. Tabelle (Bild) die einzige mit dem Typ Varchar. Aber in einer anderen Tabelle konnte ich den Typ Number auch problemlos auslesen (dafür dann aber andere Felder wieder nicht, unter anderem auch andere Typ Numbers).

Mein Labview Aufbau zum oben eingefügtem Attachment sieht so aus und liefert keinen Error (eben nur fehlende Datensätze):
[attachment=32823]

Für Hinweise oder Tipps wäre ich sehr dankbar.

Vielen Dank.


Nachtrag: Wenn ich das Array unten (auf dem 2. Bild) mit dem SelectDB-VI verbinde, dann bekomme ich den Error:
"Possible reason(s):
ADO Error: 0x00000001
Argument error. One of the column names specified is blank."
Obwohl die beiden Spalten auf jeden Fall existieren (lässt sich ohne Probleme in anderen Sprachen auslesen).

LG Cluster


RE: Select liefert nicht alle fields aus einer Oracle DB - macmarvin - 18.03.2011 10:38

(18.03.2011 10:14 )Cluster5020 schrieb:  Wenn ich einen Select Befehl "Select * FROM xy" ausführe, liefert er mir nur einige wenige Datenfelder als Ergebnis zurück.
...
Nachtrag: Wenn ich das Array unten (auf dem 2. Bild) mit dem SelectDB-VI verbinde, dann bekomme ich den Error:
"Possible reason(s):
ADO Error: 0x00000001
Argument error. One of the column names specified is blank."
Obwohl die beiden Spalten auf jeden Fall existieren (lässt sich ohne Probleme in anderen Sprachen auslesen).

Sind das leere Einträge (void) oder nicht vorhandene Arrayelemente?

Sind in deiner Stringarraykonstante noch andere, mglw. Leerstrings enthalten?

Was kommt denn raus, wenn du von den beiden Arrays die Größe bestimmen lässt?


RE: Select liefert nicht alle fields aus einer Oracle DB - Cluster5020 - 18.03.2011 10:58

(18.03.2011 10:38 )macmarvin schrieb:  Sind das leere Einträge (void) oder nicht vorhandene Arrayelemente?
Nein, alle Felder sind ausgefüllt. Er liefert mir leider nicht einmal den Index-Schlüssel zurück.
(18.03.2011 10:38 )macmarvin schrieb:  Sind in deiner Stringarraykonstante noch andere, mglw. Leerstrings enthalten?
Leider nicht, habe sie schon erneut manuell eingetippt, aber auch wenn ich den Stringarray weglasse (er also ein Wildcard setzt) bekomme ich nur die Spalte PLNAME zurück geliefert.
(18.03.2011 10:38 )macmarvin schrieb:  Was kommt denn raus, wenn du von den beiden Arrays die Größe bestimmen lässt?
Wie meinst du das?


Vielen Dank! Smile


RE: Select liefert nicht alle fields aus einer Oracle DB - Cluster5020 - 21.03.2011 20:16

Hallo.
Habe nun die Lösung des Problems. Der Support hat mich freundlich auf diesen Satz in der Toolkit ReadMe hingewiesen:
Zitat:When reading data from an Oracle database, data types of NUMBER do not show up in the variant indicator. This data is available but not visible. To see NUMBER data, use the Database Variant To Data function to convert the NUMBER to a string or any numeric data type in LabVIEW.
Die Daten stehen im Array, man sieht sie nur nicht. Sie lassen sich aber problemlos auslesen.

Liebe Grüße Cluster


RE: Select liefert nicht alle fields aus einer Oracle DB - Truemmertruppe - 22.03.2011 07:43

Guten Morgen,

das Readme File des Toolkits sagt da folgendes:

* When reading data from an Oracle database, data types of NUMBER do not show
up in the variant indicator. This data is available but not visible. To see
NUMBER data, use the Database Variant To Data function to convert the NUMBER to
a string or any numeric data type in LabVIEW.

Hilft das?

Viele Grüße