Domeus
18-12-24, 10:40
Hallo zusammen,
ich habe die unten stehende JSON Datei und möchte diese mit folgendem SQL auslesen:
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:
683
Wäre sehr nett wenn mir hier jemand bitte eine Tipp geben kann.
Hier das Json:
{
"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
ich habe die unten stehende JSON Datei und möchte diese mit folgendem SQL auslesen:
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:
683
Wäre sehr nett wenn mir hier jemand bitte eine Tipp geben kann.
Hier das Json:
{
"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