PDA

View Full Version : jvagate Bander tool Verbindung -> Oracle Hilfee



Seiten : [1] 2 3

labm
01-06-18, 17:40
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

BenderD
01-06-18, 19:10
...
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

labm
01-06-18, 21:58
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 :)

BenderD
02-06-18, 07:16
... 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

Fuerchau
02-06-18, 13:50
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.

labm
03-06-18, 15:02
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..

Fuerchau
03-06-18, 15:15
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

labm
03-06-18, 15:26
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

BenderD
03-06-18, 15:28
... was steht denn im Java logfile?, am besten vorher in log4j.properties debug level aktivieren!

D*B

labm
03-06-18, 15:58
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