-
Datentypen in Paisy
Hallo,
ich hoffe, es kann mir jemand helfen. Wir versuchen mittels SQL auf Paisydaten zuzugreifen, bekommen aber z.B. aus der DAI10 im Geburtsdatum nur einen Output mit Sternen, die überstrichen (nicht unterstrichen) sind.
Hat jemand eine Idee, wie wir das hinbekommen?
Gruß
Markus
-
das Problem ist einfach, dass Paisy die Daten in einem alphanumerischen Feld führt, die Zahlen hier aber gepackt drin enthalten sind. Das kann man dann am Bildschirm nicht darstellen. Einzige Möglichkeit, die mir einfällt:
Den String in einem Programm korrekt zerlegen und in eine neue Datei schreiben
kh
-
Zunächst einmal einige Fragen, da ich den Paisy-Lohn nicht kenne:
1. Ist das Feld ein Datum, numerisch, alphanumerisch oder hat das Feld einen eigenen Datentypen?
2. Hast Du Dir mal die Hex-Werte angeschaut? (HEX(DAI10))? Sind dies Werte mit denen Du etwas anfangen kannst?
3. Da es sich um das Geburtsdatum handelt, könnte es sein, dass es aus Gründen des Datenschutzes verschlüsselt ist. In diesem Fall müsste herausgefunden werden, wie es verschlüsselt wurde und entschlüsselt werden kann.
4. ggf. stimmt die CCSID für die Spalte nicht. In diesem Fall versuche das Feld auf die richtige CCSID zu casten.
Birgitta
-
Paisy
Möglichkeiten:
1. je nach Satzart
Feldbeschreibung über Info-Job
bei uns
PINF320 / 321
2. DAI10 über INFO-Job lesen
und Ausgabe als Datei
DAI96X*
dann:
Auswertung über Query / SQL möglich
Dieter Wolff
-
Hallo Birgitta, Hallo Kh, Hallo Dieter Wolff
das mit dem HEX war eine gute Idee. Mir dünkt, dass da noch RPG2-Programmierung vorliegt. So mit intern beschriebenen Dateien und einem langen String, in dem aber auch gepackte Felder drin sind.
Ich weiß noch nicht wie wir die Daten für das Nachfolgesystem rausholen, aber ich vermute, dass es SQL nicht sein wird. Wir müssen da noch schauen, ob wir das über die Infos lösen können. Hab ich aber nicht wirklich Ahnung von.
Danke
Gruß
Markus
-
Nun, wenn du die Daten per HEX analysieren kannst, ist es auch möglich, diese SQL-Konform umzuwandeln:
dec(substr(hex(MyField), start, len), Stellen, 0)
Wenn Nachkomma definiert sind, dann eben entsprechend dividieren:
dec(substr(hex(MyField), start, len), Stellen, 0) / 100
Wenn negative Werte benötigt werden, kann man das durch CASE lösen:
dec(substr(hex(MyField), start, len), Stellen, 0) / 100
*
case substr(hex(MyField), start+len-1, 1) when 'F' then 1 else -1 end
-
Ohne zu Wissen,
wann fängt welches Feld an,
was steht da drin
wozu ist die Info gut,
ist das ziemlich aussichtslos
-
Hallo an alle,
der Tipp mit dem Hex war gut. Funktioniert so. Vielen Dank.
Gruß
Markus
Similar Threads
-
By MarioV in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 18-05-04, 16:57
-
By KB in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 21-08-01, 10:31
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks