2010-01-12 23 views
2

我有一個地方table(文件)被設置爲在LIST tableSELECT * FROM table返回列foo的問題。我需要知道table中的其他可能列。我非常確定這是通過設置@(行爲定義爲不合格的LIST)和@select(行爲定義爲*,非常具有SELECT),但我不知道如何獲取列的完整列表。我如何讀取uvsh中的表模式並查詢物理表列?如何使用Retrieve或SQL查找UniVerse中的列列表?

在桌子上運行LIST.ITEM向我顯示了所有字段編號和值的列表,但我如何找到DISPLAY NAME和編號字段的列名稱?

回答

2

A previous answer I received on SO已經提到LIST DICT作爲一種獲得的一些元數據。這實際上是我想我想要的。官方文件使用LIST DICT;然而,在我的系統上,我認爲沒有LIST DICT,有。它需要一個文件參數。這根本不是一個單獨的命令或者(許多命令中都有空格),而不是(譯註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我經歷了與VOC文件搜索使用LIST VOC WITH NAME MATCHING LIST...我能夠識別檢索類似名稱的LIST.DICT顯示的記錄類型分類字典的內容的段落。這正是我想要的,除了結果是400行的難以管理的列表。我沒有在任何地方看到LIST.DICT的文檔,而且看起來好像記錄限定符報告限定符LIST.DICT上不起作用,就像他們在LIST上做的那樣。這一切都是真的,並加劇我的困惑,宇宙中的說法:LIST.DICT是一個短語,存儲聲明,LIST是我所需要的動詞。

所以現在回到我的問題:

如何使LIST DICT管理輸出的任何想法?

您可以使用報告限定符,並通過使用位置F#語法或通過聲明列的名稱來顯式指定列。

LIST DICT <file> <columns> 

我的系統上,你可以通過發出

LIST DICT <file> NAME 

的名字來自主字典,它可以查詢得到的實例字段名和他們顯示名稱的上市使用LIST DICT DICT.DICT。現在

,我可以看到一個漂亮的(相當乾淨)列表中的字段,但我一點也不懂如何查詢所有字段的文件絲毫的想法。

2

以下是一些基本的一些變體:

LIST DICT foo NAME 

SELECT @ID, NAME FROM DICT foo; 

這些會給你對應列表項動詞物理位置:

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功能。

1

在Universe中,每個文件都有一個關聯的字典文件。字典文件基本上只是一個數據文件,可以完全像數據文件一樣處理,用於各種目的。有3個東西,使字典文件特別:

  1. 你可以通過「翻譯字典」關鍵字的數據文件名前面訪問它。
  2. LIST(和相關命令)命令將默認使用它來處理關聯的數據文件。
  3. 它有一個由DICT.DICT文件定義的結構,您需要按照上述第2項才能使用該結構。

通常,這些字典是由程序員和數據庫管理員手動維護的。 Universe中沒有控制權來保證爲相關數據文件中的每個字段創建DICT記錄,也沒有理由說每個字段不能有多個DICT記錄。詞典項目用於控制輸出格式和轉換,因此爲每個數據字段設置多個DICT項目是正常的。

詞典記錄還可以將數據字段連接在一起,在多個字段上執行操作並從其他文件中獲取數據。所以有時甚至不清楚DICT記錄實際涉及的數據字段。

想出與數據文件對應的字典項目的簡單列表的唯一方法是通過檢查。使用LIST DICT {filename}命令並在其格式化字段中查找對其進行最少量數據操作的條目。

0

一些有用的報表,可能會對你有所幫助:

SORT DICT文件名 (這是相同的列表中,除了結果排序)

只分選出DICT文件名 (此只顯示詞典名稱)