首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >U2 Universe问题与返回特定列的数据

U2 Universe问题与返回特定列的数据
EN

Stack Overflow用户
提问于 2017-10-16 12:07:58
回答 2查看 414关注 0票数 1

我是U2宇宙的新手,所以我一直在研究它,并且一直在查阅文档,搜索堆栈溢出,但仍然不知道为什么select all语句只返回一个列- @ID。我一直试图使用SSIS中的u2netdk来执行这些select语句。

从帐户中选择*

我做了一些更多的研究,发现一些文章含糊地描述了列必须输入一个@。我不知道这意味着什么-@是文件还是文件字典的一部分?

此外,我确实提取了一个列出所有可用列的文件的字典,但是当我试图使用ADO.NET连接管理器查询SSIS中的某些列时,会出现一个错误,即无法找到列。但是,当我在TCL中键入相同的语句时,它将返回带有数据的行。这一切为什么要发生?

谢谢,JT

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-16 14:47:36

这里真正的TL;DR是添加一个名为"@“的"PH”类型的字典条目,并将您想要的列放在其中。如果要使用"SELECT *“,还需要"@SELECT”条目。请注意,多值字段和单值字段在这里可能不能很好地发挥作用,因为它们应该被视为单独的表。请参阅UniVerse文档“DBA的”的第6章,该章的标题为"UniVerse文件和SQL“,以了解这一点。

像UniVerse这样的Pick样式的数据结构是原始的NOSQL,因为它们存在于ANSI还不是标准时,而且存储元数据的空间的代价非常非常高。

在UniVerse中执行SQL是很棘手的,因为SQL中的数据类型是显式定义的,而Universe中的数据和字典是独立的结构,它们被存储,有时甚至彼此独立使用。在读或写时,您可能会使用字典作为一种键,以确定您正在处理的数据类型,但您不必说什么。此外,查询语言允许您随时更改正在使用的字典,而不适合字典结构的数据只是以意外的方式显示,而不是异想天开。这可能是难以置信的解放或导致疯狂,但这是另一个话题。

要使UniVerse对SQL发挥良好作用,您必须定义字典,以便将其挂钩到数据的底层结构中。当您从宇宙读取记录(记录)时,本质上是读取一个完整的数据集,其中有一个或多个表,嵌套深度可达3层。对于您的情况,我将接受您想要访问的所有"D“和"I”类型字段,并将它们放在字典的"@“PH记录中。在"@“中,它们是否具有多值并不重要。这将使这些字段可以从SQL中引用,但根据字典的不同,数据可能仍然会出现问题。

如果要执行"SELECT * FROM foo“;则需要有"@SELECT”语句,该语句是"@“记录的子集,仅包含单变量字段。您将希望对每个包含所需关联字段的多值关联进行PH记录,然后将其连接起来,以获得一个统一查询。请记住,即使有了所有这些SQL,在TCL提示符下的响应也将与通过ODBC发出的响应不同。

下面是一个简单的例子。姓名和电子邮件为单值,日期和金额是多值的。

代码语言:javascript
复制
@
PH
NAME EMAIL DATE AMOUNT

@SELECT
PH
NAME EMAIL

ORDERS
PH
DATE AMOUNT

祝好运!

票数 3
EN

Stack Overflow用户

发布于 2017-10-16 13:54:46

听起来,您需要更新要查询的表/文件的@SELECT字典记录。您将需要按照DICT文件/表(属性1,空格分隔)填充此记录,并将所有希望提供给ODBC/u2netdk的字段填充到该记录中。

当您的Universe数据库为ODBC/u2netdk查询做好准备时,有一些设置。在配置您的数据库时,请查看我的另一个答案,为您提供有关阅读和处理的建议。

https://stackoverflow.com/a/40495059/844685

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46769977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档