我运行SQL Server 2016来存储通过REST / JSON收到的不同信息。这工作正常,我实际上添加了其他来源(4种导入类型)。在一个json导入我得到一个错误:
Msg 13609,Level 16,Status 4,line 2
JSON文本格式不正确。在位置0处,发现了意外的字符“൛”。
我检查了文件和语法,它们与我导入的其他文件/格式类似(没有错误):
Json示例:
[
{
"cid": 6498,
"hotel_description": "Hotelmerkmale: All Inclusive, Family, Paare, Single\n<br /> \n<br /> Die ideale Wahl für den unternehmungslustigen Gast. Genießen Sie tagsüber vom Pool den entspannenden Blick auf das Meer und die Side-Halbinsel und leben Sie abends Ihr Shopping- oder Tanzfieber in der nahe gelegenen Altstadt von Side aus.\n<br /> \n<br /> \n<strong>Lage:</strong> In erhöhter Lage mit Panoramablick auf das Meer und die historische Altstadt von Side. Ca. 200 m vom kilometerlangen, flach abfallenden, feinen Sandstrand und ca. 1,5 km vom Zentrum mit zahlreichen Einkaufs- und Unterhaltungsmöglichkeiten, Restaurants, Bars und Cafés entfernt (regelmäßige Minibusverbindungen vorhanden).\n<br /> \n<br /> \n<strong>Ausstattung:</strong> Bekanntes Hotel der gehobenen Mittelklasse mit 2 Swimmingpools (einer davon mit 2 Wasserrutschen), Sonnenterrasse. Liegen, Auflagen, Sonnenschirme (Badetücher gegen Kaution). Pool-/Snackbar, Strandbar. Elegante Empfangshalle, Rezeption, WLAN in der Lobby, Sitzgruppen, Lobbybar, Spieleraum, Fernsehecke mit Großbildschirm, klimatisiertes Hauptrestaurant, 4 À-la-carte-Restaurants, Minimarkt, Diskothek, Friseur, Hallenbad. Landeskategorie: 5 Sterne, 341 Zimmer, 6 Etagen, Lifte.\n<br /> \n<br /> \n<strong>Wohnen:</strong> Doppelzimmer (ca. 18-22 qm), Klimaanlage (indiv.), Minibar, Telefon, TV, Mietsafe, Kaffee-/Teeset. Dusche/WC mit Föhn. Balkon. Max. 2E. Wahlweise seitl. Meerblick/Meerblick. Max. 3E, auch zur Alleinnutzung buchbar\n<br /> Juniorsuite (ca. 35 qm), zus. Couch, Klimaanlage (indiv.), Minibar, Telefon, TV, Mietsafe, Kaffee-/Teeset. Dusche/WC mit Föhn. Balkon. Landseite/seitl. Meerblick. Max. 3E+1K\n<br /> Familienzimmer (ca. 40 qm), zus. separates Schlafzimmer, Klimaanlage (indiv.), Minibar, Telefon, TV, Mietsafe, Kaffee-/Teeset. Dusche/WC mit Föhn. Balkon. Meerseite/seitl. Meerblick. Max. 4E\n<br /> \n<br /> \n<strong>Essen und Trinken:</strong> all inclusive: Frühstücksbuffet, mittags und abends kaltes/warmes Buffet, Themenabende, täglich Showkochen\n<br /> Snacks (stdw.), nachm. Kaffee, Tee, Gebäck\n<br /> Alkoholfr., nat. alkohol. (ab 18 J.) Getränke von 10:00-24:00 Uhr (an der Strandbar von 10:00-17:00 Uhr)Tägliche Auffüllung der Minibar mit Wasser\n<br /> \n<br /> \n<strong>Wellness und Fitness:</strong> Wellnesscenter (ca. 370 qm)\n<br /> Türkisches Bad, Dampfbad, Sauna\n<br /> Jacuzzi, Wellnessmassagen (geg. Geb.)\n<br /> Fitnessraum (ca. 70 qm)\n<br /> \n<br /> \n<strong>Sport und Fitness:</strong> Tischtennis\n<br /> Wassersport am Strand (örtlicher Anbieter, gegen Gebühr)\n<br /> \n<br /> \n<strong>Einzelzimmer ohne Aufpreis:</strong> Zu bestimmten Terminen kein Zuschlag\n<br /> \n<strong>Single mit Kind:</strong> Kinderfestpreis bei einem Vollzahler\n<br /> \n<strong>Kinderfestpreis:</strong>2 Kinder 2-12 Jahre\n<br />\n<br /> \n<br /> \n<strong>Minis & Maxis (4-12 Jahre):</strong> Miniclub (stdw.)\n<br /> Spielplatz, Kinderbuffet\n<br /> \n<br />"
}
]
我的SQL语句如下所示:
MERGE dbo.hotel_description t
USING ((SELECT
cid, hotel_description
FROM
OPENROWSET(BULK 'C:\Import\weg.de\hotel_info_import.json', SINGLE_NCLOB)j
CROSS APPLY
OPENJSON(BulkColumn)
WITH
(cid INT,
hotel_description NVARCHAR(MAX)))) s ON t.cid = s.cid
WHEN NOT MATCHED THEN
INSERT (cid, hotel_description)
VALUES (s.cid, s.hotel_description);
我检查了Google和stackoverflow,但没有找到该错误消息的原因。 任何提示?
由于
此致 蒂莫
答案 0 :(得分:0)
在SQL Server 2016中,CU7仍然需要将JSON文件编码为Little Endian(UCS-2)或带有BOM的UTF8。没有BOM的UTF8会遇到该错误。