Mysql LOAD XML,其列名包含变音符号

时间:2018-08-28 09:04:26

标签: mysql xml linux

我正在尝试将外部XML文件中的数据加载到mysql中。一切正常,但是当外部XML文件使用包含变音符号的标签定义数据时,我什么也没得到。我尝试用不同的字符集等创建数据库。像这样:

CREATE DATABASE dbValnatt
 DEFAULT CHARACTER SET utf8
 COLLATE utf8_general_ci;

或者这个:

CREATE DATABASE dbValnatt
 DEFAULT CHARACTER SET latin1
 COLLATE latin1_swedish_ci;

但是没有爱...外部XML称为valnatt_00R.xml,可以在this ZIP archive中找到。下面的前几行:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/html"?>
<!DOCTYPE VAL PUBLIC "-//Valmyndigheten//DTD Valresultat parti nation 1.6//SV" "http://www.val.se/dtd/resultat/parti_nation_1_6.dtd">
<VAL TILLFÄLLE="Allmänna val 14 september 2014" FILNAMN="valnatt_00R.xml" RAPPORTERING="VALNATTSRAPPORTERING" VALTYP="Riksdagsval" VALDAG="20140914" VALDAG_FGVAL="20100919" TID_RAPPORT="20141022134945">
  <PARTI FÖRKORTNING="M" BETECKNING="Moderaterna" FÄRG="#66BEE6" />
  <PARTI FÖRKORTNING="SD" BETECKNING="Sverigedemokraterna" FÄRG="#4E83A3" />
  <PARTI FÖRKORTNING="S" BETECKNING="Arbetarepartiet-Socialdemokraterna" FÄRG="#FF0000" />
  <PARTI FÖRKORTNING="FP" BETECKNING="Folkpartiet liberalerna" FÄRG="#3399FF" />
  <PARTI FÖRKORTNING="C" BETECKNING="Centerpartiet" FÄRG="#63A91D" />
  <PARTI FÖRKORTNING="V" BETECKNING="Vänsterpartiet" FÄRG="#C40000" />
  <PARTI FÖRKORTNING="FI" BETECKNING="Feministiskt initiativ" FÄRG="#cd0067" />
  <PARTI FÖRKORTNING="MP" BETECKNING="Miljöpartiet de gröna" FÄRG="#008000" />
  <PARTI FÖRKORTNING="KD" BETECKNING="Kristdemokraterna" FÄRG="#1B5CB1" />
  <PARTI FÖRKORTNING="ÖVR" BETECKNING="Övriga partier" FÄRG="#999999" />
  <PARTI FÖRKORTNING="BLANK" BETECKNING="Ogiltiga röster - blanka" FÄRG="#cc99ff" />
  <PARTI FÖRKORTNING="OG" BETECKNING="Ogiltiga röster - övriga" FÄRG="#003300" />

我尝试使用此SQL脚本加载它:

CREATE TABLE tblTest2(
 id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 FÖRKORTNING VARCHAR(16) NULL, 
 BETECKNING VARCHAR(16) NULL,
 FÄRG VARCHAR(16) NULL
)
 ENGINE MyISAM
 COMMENT '';

LOAD XML LOCAL INFILE 'valnatt_00R.xml'
 INTO TABLE tblTest2
 ROWS IDENTIFIED BY '<PARTI>';

但是SELECT * FROM tblTest2;返回:

id, FÖRKORTNING,BETECKNING,       FÄRG
1,  NULL,       Moderaterna,      NULL
2,  NULL,       Sverigedemokrate, NULL
3,  NULL,       Arbetarepartiet-, NULL
4,  NULL,       Folkpartiet libe, NULL
5,  NULL,       Centerpartiet,    NULL
6,  NULL,       Vänsterpartiet,   NULL
7,  NULL,       Feministiskt ini, NULL
8,  NULL,       Miljöpartiet de,  NULL
9,  NULL,       Kristdemokratern, NULL
10, NULL,       Övriga partier,   NULL
11, NULL,       Ogiltiga röster,  NULL
12, NULL,       Ogiltiga röster,  NULL

BETECKNING获取数据,但不获取数据FÄRGFÖRKORTNING。因此,名称包含变音符号。

作记录:

  • 主机:Linux tatooine 4.9.0-4-amd64#1 SMP Debian 4.9.65-3 + deb9u1 (2017-12-23)x86_64 GNU / Linux
  • 数据库:服务器版本: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1

选择我的数据库变量:

character_set_client        utf8
character_set_connection    utf8
character_set_database      latin1
character_set_filesystem    binary
character_set_results       utf8
character_set_server        latin1
character_set_system        utf8
character_sets_dir          /usr/share/mysql/charsets/
collation_connection        utf8_general_ci
collation_database          latin1_swedish_ci
collation_server            latin1_swedish_ci

有什么建议吗?

0 个答案:

没有答案