【问题标题】:How do I find the column listing in UniVerse with RetrieVe or SQL?如何使用 RetrieVe 或 SQL 在 UniVerse 中找到列列表?
【发布时间】:2010-01-12 21:56:00
【问题描述】:

我遇到了一个问题,table(文件)设置为在LIST tableSELECT * FROM table 上返回foo 列。我需要知道table 中其他可能的列。我很确定这是通过设置@(不合格LIST 的行为定义)和@select(* 的行为定义非常SELECT)实现的,但我不知道如何获得完整列表的列。如何读取uvsh中的表架构并查询物理表列?

在表格上运行LIST.ITEM 会显示所有字段编号和值的列表,但我如何找到编号字段的DISPLAY NAME 和列名?

【问题讨论】:

    标签: u2 universe multivalue-database pick


    【解决方案1】:

    A previous answer I received on SO 曾提到LIST DICT 是一种获取一些元数据的方法。这实际上是我认为我想要的。官方文档使用LIST DICT;但是,在我的系统上,我认为没有LIST DICT,有。它需要一个文件参数。它也不是一个单独的命令(许多命令中有空格),而是在(UniVerse 10.1)列表中定义为:

    LIST [ DICT | USING [ DICT ] dictname ] filename [ records | FROM n ]
    [ selection ] [ output.limiter ] [ sort ] [ output ] [ report.qualifiers ] [TOXML
    [ELEMENTS] [WITHDTD] [XMLMAPPING mapping_file]]
    

    因此,总而言之,查询数据的相同动词 (LIST) 用于查询架构,具有相同的目标文件。

    最初,当我假设没有 LIST DICT 时,我使用 LIST VOC WITH NAME MATCHING LIST... 使用 RetrieVe 搜索 VOC 文件,我能够识别出一个名称相似的 LIST.DICT显示内容的段落的字典按记录类型排序。这正是我想要的,只是结果是一个无法管理的 400 行列表。我在任何地方都没有看到 LIST.DICT 的文档,而且似乎 record qualifiersreport qualifiers 不像在 LIST.DICT 上那样工作LIST。这一切都是真的,让我更加困惑,用 UniVerse 的说法:LIST.DICT 是一个短语,一个存储的语句,LIST 是我需要的动词。

    现在回到我的问题:

    知道如何使LIST DICT 的输出易于管理吗?

    您可以使用 report 限定符并通过使用位置 F# 语法或通过声明列的名称来显式声明列。

    LIST DICT <file> <columns>
    

    在我的系统上,您可以获得字段名称及其显示名称的列表,例如通过发出

    LIST DICT <file> NAME
    

    名称来自主词典,可以使用LIST DICT DICT.DICT查询。

    现在,我可以在一个漂亮(相当干净)的列表中看到这些字段,但我对如何查询文件的所有字段一无所知。

    【讨论】:

      【解决方案2】:

      这里是基本的变种:

      LIST DICT foo NAME
      
      SELECT @ID, NAME FROM DICT foo;
      

      这些将为您提供与 LIST-ITEM 动词对应的物理位置:

      SORT DICT foo WITH TYPE EQ "D" BY LOC LOC NAME
      
      SORT DICT foo WITH TYPE EQ "D" BY LOC LOC NAME TOXML
      

      请注意,“列名”或@ID 在 LIST 或 SORT 期间默认显示。 TOXML 可能很有用,但内置了许多其他 XML 功能。

      【讨论】:

        【解决方案3】:

        在 Universe 中,每个文件都有一个关联的字典文件。字典文件基本上只是一个数据文件,可以完全像数据文件一样对待,用于各种用途。有 3 件事使字典文件特别:

        1. 您可以通过数据文件名前面的“DICT”关键字访问它。
        2. 默认情况下,LIST(和相关命令)命令将使用它来处理关联的数据文件。
        3. 它具有由 DICT.DICT 文件定义的结构,您需要遵循该结构才能使上述第 2 项起作用。

        通常,字典由程序员和数据库管理员手动维护。 Universe 中没有任何控件可以保证为关联数据文件中的每个字段创建 DICT 记录,并且没有理由不能为每个字段创建多个 DICT 记录。字典项用于控制输出格式和转换,因此每个数据字段有多个 DICT 项是正常的。

        字典记录还可以将数据字段连接在一起,对多个字段执行操作并从其他文件中获取数据。因此,有时甚至不清楚 DICT 记录实际涉及的数据字段。

        提供与数据文件对应的字典项的简单列表的唯一方法是通过检查。使用 LIST DICT {filename} 命令并在其格式字段中查找其中数据操作最少的条目。

        【讨论】:

          【解决方案4】:

          一些更有用的语句可能对您有所帮助:

          排序 DICT 文件名 (这和list一样,只是结果是排序的)

          仅排序 DICT 文件名 (这仅显示字典名称)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-03-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多