Anmelden

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



Seiten : 1 [2] 3

BenderD
03-06-18, 16:13
... ich bräuchte da schon das komplette log mit loglevel debug, um zu sehen was da klemmt- Am besten ein minimalisiertes Beispiel, mit kompletter Beschreibung, was du da machst, als Zip an meine Mailadresse.

D*B

Fuerchau
03-06-18, 21:43
Beherzige doch einfach mal das Wörtchen "NULL-Anzeiger".
Auch wenn die Inhalte ggf. nicht NULL sind, macht der NULL-Anzeiger Sinn.

Was willst du mit dem Feld "ucs2sapdata"?
Mit dem kannst du überhaupt nichts anfangen und ist total sinnlos.
UCS2-Daten sind 16-Bit ASCII-Code!!!

Und was willst du mit 16K-Feldern?

Desweiteren erhältst du einen SQLCODE zurück und ebenso auch eine Nachricht im Joblog.
I.d.R. benötigst du die Java-Traceausgaben nicht.

BenderD
04-06-18, 06:24
... DRDA Protokollfehler deutet auf einen Bug im ArdGate.
- hast Du die neueste Version?
- probier mal einen cast nach nchar oder char (cast (name as char(xxx)), wobei Oracle da genug Länge braucht - gegebenen Falls noch substring vor dem cast.

D*B

Fuerchau
04-06-18, 10:16
Meine Verwendung mit Oracle über ArdGate:



d* Struktur Oracle-Bestelltabelle
d DSOrBe ds inz
d VENDOR_NUMBER 20 varying
d PO_NUM_RELEASE...
d 20 varying
d* wird ersetzt
d* PO_LINE_NUMBER...
d LINE_LOCATION_ID...
d 11p 0
d PO_ITEM_NUMBER...
d 20 varying
d PO_LINE_ORDERED...
d 11p 2
d PO_LINE_OPEN 11p 2
d PO_LINE_UNIT_PRICE...
d 13p 4
d PO_CURRENCY 3 varying
d PO_LINE_DELDATE...
d 8p 0

OraSQL = 'select VENDOR_NUMBER '
+ ',PO_NUM_RELEASE '
+ ',LINE_LOCATION_ID '
+ ',PO_ITEM_NUMBER '
+ ',PO_LINE_ORDERED '
+ ',PO_LINE_OPEN '
+ ',PO_LINE_UNIT_PRICE '
+ ',PO_CURRENCY '
+ ',TO_NUMBER(TO_CHAR('
+ 'PO_LINE_DELDATE, ''YYYYMMDD'') '
+ ', ''99999999'') '
+ ',RH_ITEM_NUMBER '
+ ' from ' + OraTable
+ ' inner join '
+ ' XXPEW_ORACLE_RH_ITEM_NUM_V '
+ ' on PO_ITEM_NUMBER '
+ ' = ORACLE_ITEM_NUMBER '
+ ' where VENDOR_NUMBER '
+ ' = ''' + %trim(BBPA01) + '''';

// Dynamischen Cursor erstellen
exec sql declare LoadOrder cursor for LodSQLOrder;
exec sql prepare LodSQLOrder from :OraSQL;

exec sql Fetch LoadOrder
into :VENDOR_NUMBER
,:PO_NUM_RELEASE
,:LINE_LOCATION_ID
,:PO_ITEM_NUMBER
,:PO_LINE_ORDERED
,:PO_LINE_OPEN
,:PO_LINE_UNIT_PRICE
,:PO_CURRENCY
,:PO_LINE_DELDATE
,:KYTENR
;



Die Oracle-Sicht enthält keine NULL-Felder, daher keine NULL-Anzeiger.

labm
04-06-18, 11:03
Hallo
Danke für die Info

Ich gabe das teilweise gelöst.

Mit dem einfachen Cast ohne CCSID funktioniert schon -> select CAST(name as nCHAR(512)) from... Mit dieser lösung werde ich wahrscheinlich keine kyrillicher Sprache bekommen...(dafür UCS2 Felder..)

Mit Null-Anzeiger habe ich hier noch kein Problem, da ich nur 1 Feld und 1 Satz ausgewählt habe und dieser war kein NULL.

Wie ich hier mit NULL-Anzeiger umgehen muss, ist mir klar...

Ich habe die Version --> ArdGate Version: 2016-09-01

Sollte ich es Updaten ??

Danke auch für den Beispiel, hier gibt es aber keine Umsetztung auf UCS2...

Labm

BenderD
04-06-18, 11:07
...kyrillisch sollte nicht an ArdGate scheitern, das läuft sogar mit hebrew.

D*B

Fuerchau
04-06-18, 15:19
Ein Cast von NVARCHAR auf NCHAR ändert den Typ doch nur von Varying auf Fixed und füllt sogar mit Leerzeichen auf. Dass das ohne CCSID klappt ist doch logisch, da Oracle keine CCSID kennt.
Daher verstehe ich das Problem mit NVARCHAR bei dir überhaupt nicht.

Noch mal die Frage:
Wie ist der SQLCODE nach dem Fetch und was besagt das Joblog.

BenderD
04-06-18, 17:45
... soweit ich mich erinnerre, sollte die aktuelle Version einen Fix für den Varchar Bug beinhalten.

D*B

labm
04-06-18, 20:36
Ich komme diser Woche nicht mehr weiter dazu...

Ich versuche am Wochenende die neuste Version draufzuspielen und melde mich dann wieder.
Vieleicht ist das nur Darstellungsproblem...unter iAccess.

Danke für die Hinweise/Tips..

LG
Labm

BenderD
05-06-18, 06:35
... um das nochmal zu präzisieren:
- zwischen 2016-09-01 und dem aktuellen Release wurde der varchar/vargraphic Bug bereinigt.
- aktuelles Release ist aus Supportgründen zu empfehlen.
- auf die Umsetzung der Daten im DB2 hat ArdGate keinen Einfluss.
- Job CCSID wird berücksichtigt

D*B