View Full Version : jvagate Bander tool Verbindung -> Oracle Hilfee
... 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
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.
... 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
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.
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
...kyrillisch sollte nicht an ArdGate scheitern, das läuft sogar mit hebrew.
D*B
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.
... soweit ich mich erinnerre, sollte die aktuelle Version einen Fix für den Varchar Bug beinhalten.
D*B
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
... 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