在 Oracle 或 PostgreSQL 等 DBMS 中,有从数据库生成 XML 数据的函数: http: //docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb13gen.htm或http://www.postgresql。 org/docs/current/static/functions-xml.html#AEN15086
我的问题是 SQLite 数据库中有类似的东西吗?可能有一些额外的工具、库甚至标准工具用于此目的?
在 Oracle 或 PostgreSQL 等 DBMS 中,有从数据库生成 XML 数据的函数: http: //docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb13gen.htm或http://www.postgresql。 org/docs/current/static/functions-xml.html#AEN15086
我的问题是 SQLite 数据库中有类似的东西吗?可能有一些额外的工具、库甚至标准工具用于此目的?
如果您使用的是C#.NET,则可以有两种方法。
您可以将数据放入数据集并使用 .WriteXml() 方法写入 xml 文件。
var sqc = new SqlConnection(ConfigurationManager.ConnectionStrings["AddsConnectionString"].ConnectionString);
sqc.Open();
var q = "select * from adv";
var sqd = new SqlDataAdapter(q, sqc);
var ds = new DataSet();
sqd.Fill(ds,"adv");
ds.WriteXml("d:/data.xml");
不要忘记包含 System.Xml
答案是“是和不是”。它不一样,但 SQLite 在这方面实际上是相当有能力的。但是,您必须推出自己的解决方案。
要了解如何做到这一点,您必须了解 SQLite 与 PostgreSQL 或 Oracle 等数据库的不同之处。后两者是通过套接字(网络或 UNIX)与客户端通信的服务器,而 SQLite 是一个使用进程内内存与应用程序的其余部分通信的库。SQLite 没有特定的 XML 工具,但它有基础设施供您创建自己的。鉴于您没有指定您正在使用的语言(这使得嵌入式数据库方法不同),我将讨论如何考虑它,然后提供指向 Python 和 C API 文档的指针。
在 PostgreSQL 中,您通过提供在调用时运行的函数来扩展 SQL。它们位于后端,并在调用时被实例化。在 SQLite 中,您的进程与后端相同,因此您在库中拥有的任何内容都与 SQLite 处于相同的进程中。这意味着您可以以任意方式将 SQL 扩展为一种语言,只需告诉 SQLite 在看到它不理解的函数时要调用什么函数。因此,您可以通过定义函数调用然后将它们注册到 SQLite 来构建它。
Python 文档提供了一个完整的工作示例,说明如何使用 SQLite 注册 Python 函数,以便在调用时生成 md5hash。相同的方法可用于生成整个 XML 文档。我首先注意到它,因为这提供了一个很好的例子来说明你可以做什么。
SQLite 文档从 C 的角度详细介绍了这一点。从这里您可以定义您自己的聚合、您自己的函数等等。因此,您拥有此类所需的所有构建块,只是没有提供最后一英里。
有一个qt sqlite驱动插件,所以如果你决定自己制作转换程序,那么你可以通过c++和qt轻松完成。加载驱动程序,打开数据库,通过查询提取您想要的任何信息,以您想要的任何格式将它们输出到文件。
否则,有人已经做了一个转换程序: Video with exporting of db to any format
有很多可能的方法来解决这个问题。
你可以下载 SQLite Studio。并直接将表或数据库导出到 xml 文件。在此处输入图像描述
您也可以下载 SQlite 数据库浏览器,然后打开您的数据库。之后将每个表导出到 csv/html