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