我有一个基于 Intersystems Caché 数据库的产品,我看不到类、模式、表,只有全局变量。有没有什么聪明的方法可以从这些全局变量中导出数据并获得“人类可读的结构”?
7 回答
第一个问题是……什么版本的 Caché?第二个问题是……您可以使用哪些工具?终端、工作室、管理门户??
如果数据在表/类中,您至少应该能够通过 ODBC 访问它。如果没有任何表/类,则数据可能在 Globals 中。
如果数据在全局(持久稀疏数组存储)中,如果您不习惯常见模式,它们可能看起来有点奇怪。
即使它在 Globals 中,也可以定义具有自定义映射存储的类,以通过 SQL 以类似表格的方式显示它们。
缓存非常灵活,但学习曲线可能很陡峭。:-(
Intersystems Cache 中的全局变量是无模式的存储类型,因此您可以拥有的最佳“人类可读”格式是 System Management Portal 中的那种。
其他选项有: * 终端中的 zw 命令 * 终端中的 d ^%G 命令
您是否能够查看 Cache SMP 或使用 Cache Studio 连接到数据库?我认为您会在其中的某个地方找到代码(如果它们不使用类,则至少是一堆例程)。使用 SMP 浏览全局变量是熟悉它们包含的数据集的好方法。在终端会话中,您可以使用 zw 命令查看全局节点内容:
USER> zw ^GlobalName
http://docs.intersystems.com/cache20082/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_czwrite
你能提供更多关于你的情况的信息吗?
根据全局变量的结构,您可以为它们创建类并编辑存储映射以指向它们。基于此,您可以继续创建报告/(zen/csp)网页以显示内容。但是,根据数据的复杂性,这可能会花费您数小时到数月的时间:/
ODBC 与缓存一起使用。您可以使用 ODBC 连接将数据导出到另一个结构,例如一组自由表或文本文件。
我的经验是使用 Navicat Tool 并将数据库 Caché 导出到 MySQL 模式或 Postgres 以了解 DB 模型,使用通过 ODBC 的导入工具。
您可以使用名为 D ^%GO 的系统实用程序,它是全局输出。您指定全局和要将它们导出到的文件。还有一个 ^%GI 用于从此文件中的全局导入