如何 SQL-query 这个 excel table 与 header 中列的重音名称?
How to SQL-query this excel table with accented names of the columns in header?
总结: 使用 Jet.OLEDB 提供程序和 SQL 查询,我无法从 Excel table.原因可能是 header 文本包含一些重音字符。是否可以从技术上参考这些专栏?类似于 K
或 C12
列,而不是使用 header...
的文本
详情:其实具体的Excel文档可以从http://www.sukl.cz/file/80129_1_1下载——文档名为DistribuceLP_2015_01.xls
(见后面处方)。它包含一些可供下载和提取的公开统计信息。
下载并保存文件后,我确实成功地提取了一些列;
我有一个工具可以获取连接字符串、目标目录和一系列 SQL 命令 + 目标 table 名称。它使用提取的内容生成普通的旧 DBF tables。包含转换描述的文本文件如下所示——因此您可以看到连接字符串和 SELECT 查询。 sheet 重命名为 A
:
connection:Provider=Microsoft.Jet.OLEDB.4.0;Data source=d:\download\DistribuceLP_2015_01.xls;Extended Properties="Excel 8.0;HDR=Yes;"
outputdir:.
----------------
test
SELECT
[Období] AS obdo,
[Typ odběratele] AS typodb,
ATC7,
[Kód SÚKL] AS kodsukl,
[Název přípravku] AS nazev,
[Doplněk názvu] AS baleni,
[Držitel registračního rozhodnutí] AS drr,
[Země] AS zeme,
[Typ pohybu] AS pohyb,
[Počet balení/M] AS pocbal,
[Cena za balení bez obch. přirážky a DPH] AS cenabal, -- !!!
[Celkem finance za všechna balení bez obch. přirážky a DPH] AS cena, -- !!!
[Počet definovaných denních dávek/balení] AS dendavek,
[Počet denních definovaných dávek/balení celkem] AS davek,
[Způsob výdeje] AS vydej
FROM [A$]
差不多可以了。如果我删除由 -- !!!
标记的行,提取就可以正常进行。两条标记的行会导致错误。我怀疑重音字母 ř,或者可能是文本中的 点。
您有类似案例的经验吗?
我认为您需要使用不区分重音的归类,因为您的目标数据库中的归类设置可能不同:
SELECT
[Období] COLLATE Latin1_general_CI_AI AS obdo,
[Typ odběratele] COLLATE Latin1_general_CI_AI AS typodb,
ATC7,
[Kód SÚKL] COLLATE Latin1_general_CI_AI AS kodsukl,
[Název přípravku] COLLATE Latin1_general_CI_AI AS nazev,
[Doplněk názvu] COLLATE Latin1_general_CI_AI AS baleni,
[Držitel registračního rozhodnutí] COLLATE Latin1_general_CI_AI AS drr,
[Země] COLLATE Latin1_general_CI_AI AS zeme,
[Typ pohybu] AS pohyb,
[Počet balení/M] COLLATE Latin1_general_CI_AI AS pocbal,
[Cena za balení bez obch. přirážky a DPH] COLLATE Latin1_general_CI_AI AS cenabal, -- !!!
[Celkem finance za všechna balení bez obch. přirážky a DPH] COLLATE Latin1_general_CI_AI AS cena, -- !!!
[Počet definovaných denních dávek/balení] COLLATE Latin1_general_CI_AI AS dendavek,
[Počet denních definovaných dávek/balení celkem] COLLATE Latin1_general_CI_AI AS davek,
[Způsob výdeje] COLLATE Latin1_general_CI_AI AS vydej
FROM [A$]
总结: 使用 Jet.OLEDB 提供程序和 SQL 查询,我无法从 Excel table.原因可能是 header 文本包含一些重音字符。是否可以从技术上参考这些专栏?类似于 K
或 C12
列,而不是使用 header...
详情:其实具体的Excel文档可以从http://www.sukl.cz/file/80129_1_1下载——文档名为DistribuceLP_2015_01.xls
(见后面处方)。它包含一些可供下载和提取的公开统计信息。
下载并保存文件后,我确实成功地提取了一些列;
我有一个工具可以获取连接字符串、目标目录和一系列 SQL 命令 + 目标 table 名称。它使用提取的内容生成普通的旧 DBF tables。包含转换描述的文本文件如下所示——因此您可以看到连接字符串和 SELECT 查询。 sheet 重命名为 A
:
connection:Provider=Microsoft.Jet.OLEDB.4.0;Data source=d:\download\DistribuceLP_2015_01.xls;Extended Properties="Excel 8.0;HDR=Yes;"
outputdir:.
----------------
test
SELECT
[Období] AS obdo,
[Typ odběratele] AS typodb,
ATC7,
[Kód SÚKL] AS kodsukl,
[Název přípravku] AS nazev,
[Doplněk názvu] AS baleni,
[Držitel registračního rozhodnutí] AS drr,
[Země] AS zeme,
[Typ pohybu] AS pohyb,
[Počet balení/M] AS pocbal,
[Cena za balení bez obch. přirážky a DPH] AS cenabal, -- !!!
[Celkem finance za všechna balení bez obch. přirážky a DPH] AS cena, -- !!!
[Počet definovaných denních dávek/balení] AS dendavek,
[Počet denních definovaných dávek/balení celkem] AS davek,
[Způsob výdeje] AS vydej
FROM [A$]
差不多可以了。如果我删除由 -- !!!
标记的行,提取就可以正常进行。两条标记的行会导致错误。我怀疑重音字母 ř,或者可能是文本中的 点。
您有类似案例的经验吗?
我认为您需要使用不区分重音的归类,因为您的目标数据库中的归类设置可能不同:
SELECT
[Období] COLLATE Latin1_general_CI_AI AS obdo,
[Typ odběratele] COLLATE Latin1_general_CI_AI AS typodb,
ATC7,
[Kód SÚKL] COLLATE Latin1_general_CI_AI AS kodsukl,
[Název přípravku] COLLATE Latin1_general_CI_AI AS nazev,
[Doplněk názvu] COLLATE Latin1_general_CI_AI AS baleni,
[Držitel registračního rozhodnutí] COLLATE Latin1_general_CI_AI AS drr,
[Země] COLLATE Latin1_general_CI_AI AS zeme,
[Typ pohybu] AS pohyb,
[Počet balení/M] COLLATE Latin1_general_CI_AI AS pocbal,
[Cena za balení bez obch. přirážky a DPH] COLLATE Latin1_general_CI_AI AS cenabal, -- !!!
[Celkem finance za všechna balení bez obch. přirážky a DPH] COLLATE Latin1_general_CI_AI AS cena, -- !!!
[Počet definovaných denních dávek/balení] COLLATE Latin1_general_CI_AI AS dendavek,
[Počet denních definovaných dávek/balení celkem] COLLATE Latin1_general_CI_AI AS davek,
[Způsob výdeje] COLLATE Latin1_general_CI_AI AS vydej
FROM [A$]