Das Notes Forum
Domino 9 und frühere Versionen => ND6: Administration & Userprobleme => Thema gestartet von: alesssandro am 11.08.04 - 16:58:23
-
Hi Leute.
Ich habe in der Designer-Hilfe eine schockierende Nachricht gelesen (vielleicht läßt es den einen oder anderen kalt *g*):
Zum Thema: Verbindungen mit RDBMS, Datentypen in Notes
If you want to use BLOBs or RAWs they must originate in Notes, then be inserted into the Oracle table, and then be read back into Notes, otherwise they will not be in a format that Notes can recognize. This is also true for LEI/DECS when a Notes database is one of the connected databases.
(zu finden unter "Oracle 8 Data Types" oder "Oracle 7 Data Types"
Das würde ja bedeuten, dass ich Daten aus externen DBs, die dort binär gespeichert sind nicht verwenden kann, weil Notes damit nicht umgehen kann?!?! (ausser, wenn ich die Daten zuerst von Notes in die DB speichere)
Das wäre ja fatal! Ich muss eine Verbindung zu unserem ERP herstellen... ca 40% der Daten sind dort in der Oracle-DB in Feldern mit dem Datentyp: RAW oder BLOB gespeichert.
Hab ich hier etwas falsch verstanden?
Gilt das nur für Oracle-DBs vers. 8 und/oder domino < 6.5?
Please give me good news ???
alex
-
In welchem Format sind den die Daten in den Blobs?
Grüße
Ralf
-
Die Frage nach dem Format ist genau die entscheidende Frage und die Sache hat eigentlich wenig mit Notes selber zu tun, sondern ist inhärent.
BLOBs und RAWs sind ja genau dazu da, "unbestimmte" Daten zu spreichern, und solange das System nicht weiss, wie mit diesen Daten umzugehen ist, ist es auch nicht möglich, sie zu bearbeiten. Notes weiss nun mal nur, wie es mit den eigenen BLOBs umgehen kann und nicht, wie fremde BLOBs organisiert sind, mehr steht da eigentlich nicht drin. Und soweit ist das eigentlich auch selbstverständlich.
-
Ja, das ist schon klar, darauf zielt ja meine Frage ab. Wenn z.B. Jpegs oder PDF's in den Blobs gespeichert sind sollte es schon gehen, wenn natürlich Daten drinnen sind, von denen man das Format nicht kennt, sehe ich nicht sehr viel Chancen.
Also bevor wir raten, um welche Art von Daten geht es?
Grüße
Ralf
-
... das bezieht sich sicherlich nur darauf, wenn du irgendwelche Notes Datenstrukturen (etwa ein ganzes Dokument mit allen Feldern) als blob abspeicherst.
Btw. schätze ich das als extremen Hack ein, weil dann andere Anwendungen gar nichts mit diesen Daten anfangen können, da sie die Datenstruktur nicht lesen können.
Viele Vorteile von RDBMS (standardisierter Zugriff, Reporting-Tools, etc.) können so nicht ausgenutzt werden.
Das Thema ist in der Datenbankprogrammierung wohlbekannt.
Die ganze Aufregung um EJB, Hibernate, ADO.NET etc. dreht sich eigentlich einfach nur darum, so einen blob hack zu vermeiden.
Falls Iris tolle neue DB2 Integrationsstruktur zu grossen Teilen darauf beruht, kündige ich hiermit meinen entschiedenen Protest an. :-[
Gruß Axel
-
Danke für eure Antworten...
Die konkrete Situation sieht so aus: es handelt sich um eine Orcale 9.2. Die Aufgabe besteht darin, Adressdaten nach Notes zu Synchronisieren. Diese Adressdaten sind über ca. 7 Tabellen verstreut, die über eine GUID verknüpft sind. Die Felder mit einer GUID sind vom Datentyp RAW und sieht z.b. so aus: "00607DE59DAE1F10BBA1C0A8100A0000"
Wenn ich per Lotus Script Daten aus einer dieser Tabellen abfrage, sieht die GUID unleserlich aus.
Ein Ausschnitt aus dem Script, das die Daten in eine Datei schreibt.
----------------------------------------------------------------------------------------
...
qry.SQL = "SELECT GUID, NAME FROM PARTNER001"
result.Execute
If result.IsResultSetAvailable Then
Do
msg = "Zeile " & n% & " : "
result.NextRow
For i = 1 To result.NumColumns
msg = msg & result.GetValue(i, msg) & ", "
Next
' Daten in Datei schreiben
Write #fileNum%, msg
Loop Until result.IsEndOfData
result.Close(DB_CLOSE)
Else
...
----------------------------------------------------------------------------------------
Ergibniszeile in Datei:
----------------------------------------------------------------------------------------
"Zeile 12 : ^A@<7f>^^^P^?n(, ORTNER UND STANGER"
"Zeile 13 : ^A`<7f>^^^P^?n(, Kunststofftechnik GmbH"
----------------------------------------------------------------------------------------
Kann ich Lotus irgendwie dazu bringen, die GUID zu verstehen?
alex
-
Ich sage es gleich, bin kein Experte für Oracle, aber folgende Vorgehendsweise erscheint mir logisch.
Du castest in deinem Select Statement einfach das Feld GUID auf Varchar2 Feld um. Das sollte funktionieren.
Also
qry.SQL = "SELECT cast (GUID AS varchar2(30)), NAME FROM PARTNER001"
Die 30 solltest du auf die richtige länge der RAW Daten ändern.
Siehe auch folgenden Link dazu:
http://www.techonthenet.com/oracle/functions/cast.htm
Hoffe es hilft.
Grüße
Ralf
-
Ja super... das funzt!!! 8)
qry.SQL = "SELECT cast (GUID AS varchar2(30)), NAME FROM PARTNER001"
Die 30 solltest du auf die richtige länge der RAW Daten ändern.
Ich musste die Länge auf 32 setzen... die Orginal-RAW-Daten sind aber auf eine Länge von 16 gesetzt.
Ich sage es gleich, bin kein Experte für Oracle, aber folgende Vorgehendsweise erscheint mir logisch.
Dein Tipp war trotzdem Gold wert...
Danke, alex
-
keine Ursache, vielleicht setzt du den Thread noch auf abgeschlossen.
Grüße
Ralf