-
Json mit SQL auslesen
Hallo zusammen,
ich habe die unten stehende JSON Datei und möchte diese mit folgendem SQL auslesen:
Code:
SELECT *
FROMJSON_TABLE(
(Select line fromtable(qsys2.ifs_read_utf8('/test/so3.json')) fetchfirstrowonly),
'$'
COLUMNS (
VOUCHERTYPE VARCHAR(10) PATH'$.vouchertype',
VOUCHERNO VARCHAR(20) PATH'$.voucherno',
WAREHOUSENO VARCHAR(10) PATH'$.warehouseno',
NESTED'$.supplier'
COLUMNS (
SUPPLIERNO VARCHAR(15) PATH'$.supplierno',
NAME1 VARCHAR(50) PATH'$.name1',
EMAIL VARCHAR(50) PATH'$.email',
PHONE VARCHAR(30) PATH'$.phone',
NESTED'$.address[*]'
COLUMNS (
STREET VARCHAR(50) PATH'$.street',
ZIPCODE VARCHAR(10) PATH'$.zipcode',
CITY VARCHAR(50) PATH'$.city',
ADDRESSTYPE VARCHAR(10) PATH'$.addresstype',
COUNTRYCODETYPE VARCHAR(10) PATH'$.countrycodetype',
COUNTRYCODE VARCHAR(5) PATH'$.countrycode'
)
),
NESTED'$.lineitems[*]'
COLUMNS (
SKU VARCHAR(50) PATH'$.sku',
LINEITEMNO VARCHAR(10) PATH'$.lineitemno',
ARTICLENAME VARCHAR(100) PATH'$.articlename',
ORDEREDQUANTITY DECIMAL(10,2) PATH'$.orderedquantity',
NESTED'$.productcodes[*]'
COLUMNS (
PRODUCTCODETYPE VARCHAR(10) PATH'$.type',
PRODUCTCODE VARCHAR(50) PATH'$.value'
)
)
)
);
Warum bekomme ich dann zwei Zeilen und nicht eine? Wahrscheinlich hängt es mit meinem Gebrauch der NESTED zusammen aber ich schaffe es einfach nicht, dass er alles in einer Zeile ausliest:

Wäre sehr nett wenn mir hier jemand bitte eine Tipp geben kann.
Hier das Json:
Code:
{
"vouchertype": "AB",
"voucherno": "1234567",
"warehouseno": "123",
"supplier": {
"name1": "Test GmbH",
"email": "info@test.com",
"phone": "012345-6789",
"address": [
{
"street": "Test-Straße 33",
"zipcode": "12345",
"city": "Testort",
"addresstype": "HOME",
"countrycodetype": "ISO31661",
"countrycode": "DE"
}
],
"supplierno": "12345"
},
"lineitems": [
{
"sku": "1234567890",
"lineitemno": "1.000",
"articlename": "Testartikel",
"orderedquantity": 100,
"productcodes": [
{
"type": "EAN",
"value": "1234567890"
}
]
}
]
}
Gruß
Sebastian
-
Was ist wenn es mehrere Adressen gibt?
Wie soll er sich dann verhalten?
Aber wenn es nur eine Adresse gibt, könntest du es auch ggf. so lösen:
Code:
SELECT *
FROM JSON_TABLE(
(Select line from table(qsys2.ifs_read_utf8('/test/so3.json')) fetch first row only),
'$'
COLUMNS (
VOUCHERTYPE VARCHAR(10) PATH'$.vouchertype',
VOUCHERNO VARCHAR(20) PATH'$.voucherno',
WAREHOUSENO VARCHAR(10) PATH'$.warehouseno',
SUPPLIERNO VARCHAR(15) PATH'$.supplier.supplierno',
NAME1 VARCHAR(50) PATH'$.supplier.name1',
EMAIL VARCHAR(50) PATH'$.supplier.email',
PHONE VARCHAR(30) PATH'$.supplier.phone',
NESTED '$.supplier.address[*]'
COLUMNS (
STREET VARCHAR(50) PATH'$.street',
ZIPCODE VARCHAR(10) PATH'$.zipcode',
CITY VARCHAR(50) PATH'$.city',
ADDRESSTYPE VARCHAR(10) PATH'$.addresstype',
COUNTRYCODETYPE VARCHAR(10) PATH'$.countrycodetype',
COUNTRYCODE VARCHAR(5) PATH'$.countrycode'
),
NESTED '$.lineitems[*]'
COLUMNS (
SKU VARCHAR(50) PATH'$.sku',
LINEITEMNO VARCHAR(10) PATH'$.lineitemno',
ARTICLENAME VARCHAR(100) PATH'$.articlename',
ORDEREDQUANTITY DECIMAL(10,2) PATH'$.orderedquantity',
NESTED '$.productcodes[*]'
COLUMNS (
PRODUCTCODETYPE VARCHAR(10) PATH'$.type',
PRODUCTCODE VARCHAR(50) PATH'$.value'
)
)
)
);
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 25
Letzter Beitrag: 10-04-24, 19:33
-
By Domeus in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 21-09-23, 08:02
-
By Andreas_Prouza in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 18-01-23, 14:30
-
By ismiavoiwuascht in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 17-10-21, 21:17
-
By Kerki in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 26-01-21, 09:46
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