View Full Version : jvagate Bander tool Verbindung -> Oracle Hilfee
Hallo *all
wo finde ich die Traiber für den Tool JVAGATE für Oracle Datenbank.
Bzw wie muss die global.properties konfiguriert werden?
ard.url.XYZ=jdbc:oracle:thin:@oracle64:1521:xx
ard.driver.XYZ=oracle.jdbc.driver.OracleDriver
ard.properties.XYZ.user=dbmuser
ard.properties.XYZ.password=denkste
ard.properties.xyz.additionalProps=Test
wie wird der URL aufgebaut
Merci
...
Treiber findest Du hier: http://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html
Doku findest Du hier: https://sourceforge.net/projects/appserver4rpg/files/appserver4rpg/Docu/
Beispiele für url findet Du auch in der global.properties der Distribution
Wenns schnell gehen soll und gut werden soll, machst Du einen Workshop, Termine und Konditionen unter db@bender-dv.de.
mfg
D*B
vielen Dank
es funktioniert... :D
ich habe noch Problem beim VARGRAPHIC Felder
Bei STRSQL bekomme ich immer "DRDA-Protokollfehler."
kann man es einfach umsetzen wenn ja dann wie
Danke für die Hilfe :)
... bei Kompatibilitätsproblemen von Datentypen hilft ein Cast, wobei die Syntax für die remote Datenbank eingehalten werden muss (=> Blick in die Oracle Doku).
D*B
VARGRAPHIC kennt Oracle nicht. Je nach Ziel muss in Oracle der Typ NVARCHAR oder VARCHAR definiert sein. D.h., dass du in deinem Programm die Felder in den Typ C (UCS2) für NVARCHAR oder eben normal Alpha konvertieren musst.
Hallo,
viellen Dank
Das stimmt wenn ich direkt in Datenbank rein schaue sind die Felder Nvarchar.
Wenn ich ich allerdings über das Tool von Herr Bender(JVAGATE) über STRSQL (i5) schaue und im select F4 drücke, werden dieser als VARGRAPHIC dargestellt.
Ich habe bereits so Probiert:
cmd = 'Select '
+ 'Feld1, ' //Feld ist numeric
+ 'Feld2, ' //Feld ist numeric
// + 'name ' //Feld ist nvarchar oder unter JVAGATE vargraphic
//+ 'CAST(name as CHAR(512) ccsid 273) ' //so probiert
+ 'CAST(CAST(name AS VARCHAR(512)'
+ ' CCSID 13488) VARCHAR(512) CCSID 1141) ' //so auch
+ 'from DBO.address ' ;
oder direkt bei fetch into ausgegeben in das Feld ucs2data siehe unten <- ohne erfolg
d cvtdata DS
D ucs2sapdata 32766A varying
D ucs2data 16383C varying overlay(ucs2sapdata)
Immer fehler
Ich habe keine Idee mehr.. :(
Gruß
Schönnen Sonntag noch..
Das Problem ist ein anderes.
Oracle führt N[VAR]CHAR in UTF-8!
Allerdings liefert der Oracle-Treiber diese Felder wieder vom Typ String.
Zusätzlich kannst du natürlich im SQL keine AS/400-Funktionen angeben, da dieser SQL doch an Oracle geht und eigene Funktionen hat!
Also lass mal alle Casts weg, mach deinen "Select F1, F2, ...." und definiere deine Zielvariablen für Zeichenfelder einfach vom Typ C.
Zusätzlich solltest du für alle Felder auch NULL-Anzeiger vorhalten, denn NULL ist i.d.R. bei Oracle erlaubt.
Zu beachten ist auch der Typ Date in Oracle der immer vom Typ DateTime ist!
Diese Felder solltest du mittles TO_CHAR(Fx, 'Format') umwandeln.
Dann kannst du diese per %DATE, %TIME oder %TIMESTAMP wieder umwandeln.
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions180.htm
Umgekehrt beim Insert/Update oder einer Where-Klausel gilt für DateTime dasselbe:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm
Hallo
vielen Dank für die blitz Antwort.
gilt das gleicher bei NVARCHAR auch für MySQL Datenbank?
Dort habe ich das gleicher Problem.
Also
Select F1, F2, F3(ist Nvarchar)...
dann bei fetch into
FETCH NEXT FROM C1 INTO :f1, :f2, :f3 ;
wobei f3 ist so als C definiert??
d cvtdata DS
D ucs2sapdata 32766A varying
D f3 16383C varying overlay(ucs2sapdata)
ist das so richtig??
DAnkKKKEEE
... was steht denn im Java logfile?, am besten vorher in log4j.properties debug level aktivieren!
D*B
Habe gerade ausprobiert..
Auszug aus dem Log:
Daten kommen zurück (Abel+Ruf GmbH) und dann...DRDA-Protokollfehler.
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.GenericArxFormat: decimalDelimiter: ,
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.GenericArxFormat: dateFormat: *EUR
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.GenericArxFormat: timeFormat: *JIS
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.GenericArxFormat: isolationLevel: *CS
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.ARFC0100Format: CursorName: RAWDATACURSOR26
[pool-1-thread-3] de.bender_dv.ardgate.application.ARFC0100Handler: columnCount: 1
[pool-1-thread-3] de.bender_dv.ardgate.application.ARFC0100Handler: columnType: -9
[pool-1-thread-3] de.bender_dv.ardgate.application.ARFC0100Handler: NVARCHAR column: 1 contents: Abel+Ruf GmbH
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.ResultSetHuddle: data: Abel+Ruf GmbHlength: 13
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.ResultSetHuddle: added to huddle
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.SqlcaBean: SQLCode: 0
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.SqlcaBean: SQLState: 00000
[pool-1-thread-3] de.bender_dv.ardgate.pords2pojo.SqlcaBean: sqlErrd3 0
[pool-1-thread-3] de.bender_dv.jvagate.communication.Sender: connected to DataQueue (system: AS400 (system name: 'localhost' user
[main] de.bender_dv.jvagate.communication.Receiver: getOrder
[pool-1-thread-3] de.bender_dv.jvagate.communication.Sender: $$$$$ R343457 $$$$$
[pool-1-thread-3] de.bender_dv.jvagate.communication.Sender: Event ARDPGM
[pool-1-thread-3] de.bender_dv.jvagate.communication.Request: Event set to: ARDPGM
[pool-1-thread-3] de.bender_dv.ardgate.application.ArdHandler: Request: de.bender_dv.jvagate.communication.Request@96f02b5 b