分发数据标准检查工具 v1.35_20230321

使用基于物理名称的标准检查功能时,出现运行时错误“‘424’”。我们需要一个物体。”有时消息中会出现错误。我们发布了数据标准检查工具v1.35_20230321,它纠正了这个错误。

*(参考)上次发布的文章: 部署数据标准检查工具 v1.34_20221215

一、现象

当您在“标准检查(基于物理名称)”表中的C列(列名称(物理名称))中输入列名称并单击标准检查按钮时,出现以下“'424'运行时错误”。我们需要一个物体。”发生错误。

'424' 런타임 오류가 발생하였습니다. 개체가 필요합니다.
“424”发生运行时错误。需要一个对象。

2.原因

此错误并不总是发生,当物理名称被分隔符(_、下划线)分隔并且每个标记不在单词词典中的物理名称中时,就会发生此错误。

Private Sub cmdRun_Click()
...
    '------------------------------------------------------------------------------------------
    '물리명 기준으로 논리명 찾기
    Dim aColNamePart() As String, lColNamePartIdx As Long, oColNamePartAsStdWord As Collection
    Dim oStdWordObj As Object, oStdWord As CStdWord, sLName As String
    For lRow = LBound(vInRngArr) To UBound(vInRngArr)
        sColName = vInRngArr(lRow, 1)
        If Trim(sColName) = "" Then GoTo SkipBlank '점검할 속성명이 비어있는 경우 Skip
        aColNamePart = Split(sColName, "_")
        Set oColNamePartAsStdWord = Nothing
        Set oColNamePartAsStdWord = New Collection
        sLName = ""
        For lColNamePartIdx = LBound(aColNamePart) To UBound(aColNamePart)
            Set oStdWordObj = oStdWordDic.ItemP(aColNamePart(lColNamePartIdx)) '<-- 오류 발생
            oColNamePartAsStdWord.Add oStdWordObj
            If TypeOf oStdWordObj Is CStdWord Then
                Set oStdWord = oStdWordObj
                sLName = sLName + IIf(sLName = "", "", "_") + oStdWord.m_s단어논리명
            End If
            oOutRange.Offset(lRow - 1, 0).Value2 = sLName
        Next lColNamePartIdx
SkipBlank:
    Next lRow
...
End Sub

在上面代码的第 15 行中,aColNamePart(lColNamePartIdx) 表示标记除以下划线字符后的第 n 个值。当 oStdWordDic(单词词典词典对象)的 ItemP(将物理名称作为键、单词对象作为值进行管理的词典对象)中不存在该值时,会发生错误。

三、措施

代码更改如下。

Private Sub cmdRun_Click()
...
    '------------------------------------------------------------------------------------------
    '물리명 기준으로 논리명 찾기
    Dim aColNamePart() As String, lColNamePartIdx As Long, oColNamePartAsStdWord As Collection
    Dim oStdWordObj As Object, oStdWord As CStdWord, sLName As String
    Dim sTokenP As String, sTokenL As String
    For lRow = LBound(vInRngArr) To UBound(vInRngArr)
        sColName = vInRngArr(lRow, 1)
        If Trim(sColName) = "" Then GoTo SkipBlank '점검할 속성명이 비어있는 경우 Skip
        aColNamePart = Split(sColName, "_")
        Set oColNamePartAsStdWord = Nothing
        Set oColNamePartAsStdWord = New Collection
        sLName = ""
        For lColNamePartIdx = LBound(aColNamePart) To UBound(aColNamePart)
            sTokenP = aColNamePart(lColNamePartIdx)
            sTokenL = ""
            If oStdWordDic.ExistsP(sTokenP) Then '단어 물리명이 사전에 있는 경우
                Set oStdWordObj = oStdWordDic.ItemP(aColNamePart(lColNamePartIdx))
                oColNamePartAsStdWord.Add oStdWordObj
                If TypeOf oStdWordObj Is CStdWord Then
                    Set oStdWord = oStdWordObj
                    sTokenL = oStdWord.m_s단어논리명
                End If
            Else
                '단어 물리명이 사전에 없는 경우
                sTokenL = "[" + sTokenP + "]"
            End If
            sLName = sLName + IIf(sLName = "", "", "_") + sTokenL
            oOutRange.Offset(lRow - 1, 0).Value2 = sLName
        Next lColNamePartIdx
SkipBlank:
    Next lRow
...
End Sub

为了防止错误,请区分单词的物理名称在字典中(第 18 行)和不在字典中(第 25 行)的情况,如果不在字典中,则显示“[...]” ]”并使用条件格式使其脱颖而出。

如果单词的物理名称不在词典中,则显示如下例所示。这是故意输入字典中没有的 YMDX、ABC 和 DEF 的示例。

데이터 표준점검 도구 v1.35_20230321 오류 수정: 단어 사전에 없는 YMDX, ABC, DEF를 입력한 예시
数据标准检查工具v1.35_20230321 纠错:输入单词词典中没有的YMDX、ABC、DEF示例

4.下载数据标准检查工具v1.35_20230321

补丁版本已经上传到github,可以从下面的网址下载。

https://github.com/DAToolset/ToolsForDataStandard/raw/main/속성%20표준점검%20도구_v1.35_20230321_1.xlsm

11 条回复

  1. 头像照片 KSM说道:

    这是 Config 中与标准字典存储库相关的标准字典查询。
    存储库数据库:PostgreSQL,标准化目标数据库:SQL Server

    – 标准词典查询
    SELECT ROW_NUMBER() OVER (ORDER BY D.DIC_LOG_NM) AS NO
    ,D.DIC_LOG_NM AS“字逻辑名”
    ,D.DIC_PHY_NM AS“字物理名称”
    ,D.DIC_PHY_FLL_NM AS“英文单词名称”
    ,D.DIC_DESC AS“字描述”
    ,D.STANDARD_YN AS “是否标准”
    ,(case D.ATTR_CLSS_YN when 'Y' then 'Y' else 'N' END) AS “是否是属性分类词”
    ,案件
    当 D.STANDARD_YN = 'Y' 并且 SIM.Standard 逻辑名称为 NULL 时,则 D.DIC_LOG_NM
    WHEN D.STANDARD_YN = 'Y' AND SIM.Standard 逻辑名称 IS NOT NULL THEN SIM.Standard 逻辑名称
    ELSE SIM.标准逻辑名称
    END “标准逻辑名称”
    ,SIM.同义词
    ,G.DOM_GRP_NM AS“域名分类名称”
    /*
    ,D.ENT_CLSS_YN AS “实体分类词是否?
    */
    FROM dataware.STD_AREA A
    ,dataware.STD_DIC D
    左外连接
    (选择 DM.KEY_DOM_NM
    ,MAX(DM.DOM_GRP_ID) DOM_GRP_ID
    ,MAX(DG.DOM_GRP_NM) DOM_GRP_NM
    来自数据软件.STD_DOM DM
    ,dataware.STD_DOM_GRP DG
    WHERE DM.STD_AREA_ID = '需要检查键值!!!'
    和 DM.AVAL_END_DT = '99991231235959'
    并且 DG.STD_AREA_ID = DM.STD_AREA_ID
    和 DG.AVAL_END_DT = '99991231235959'
    并且 DM.DOM_GRP_ID = DG.DOM_GRP_ID
    按 DM.KEY_DOM_NM 分组) G
    在 D.DIC_LOG_NM = G.KEY_DOM_NM 上
    左外连接
    (
    — 如果标准
    选择 A.P_DIC_ID“组 ID”
    ,A.P_DIC_ID DIC_ID
    ,P.DIC_LOG_NM “标准逻辑名称”
    ,STRING_AGG(C.DIC_LOG_NM, ',' ORDER BY A.C_DIC_ID) “同义词”
    FROM dataware.STD_DIC_REL A
    左外连接数据件.STD_DIC P
    在 A.P_DIC_ID = P.DIC_ID 和 P.AVAL_END_DT = '99991231235959'
    左外连接数据件.STD_DIC C
    在 A.C_DIC_ID = C.DIC_ID 和 C.AVAL_END_DT = '99991231235959'
    其中 1=1
    AND A.P_STD_AREA_ID =(从 DATAWARE.STD_AREA 中选择 STD_AREA_ID,其中 AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '标准词典')
    和 A.AVAL_END_DT = '99991231235959'
    按 A.P_DIC_ID、P.DIC_LOG_NM 分组
    联合所有
    — 如果是非标准的
    选择 AA.P_DIC_ID“组 ID”
    ,A.C_DIC_ID DIC_ID
    ,P.DIC_LOG_NM “标准逻辑名称”
    ,STRING_AGG(CASE WHEN AA.C_DIC_ID = A.C_DIC_ID THEN P.DIC_LOG_NM ELSE C.DIC_LOG_NM END, ',' 按 CASE WHEN AA.C_DIC_ID = A.C_DIC_ID THEN '0' ELSE AA.C_DIC_ID END) “同义词”
    FROM dataware.STD_DIC_REL A
    ,dataware.STD_DIC_REL AA
    ,dataware.STD_DIC P
    ,dataware.STD_DIC C
    其中 1=1
    AND A.P_STD_AREA_ID =(从 DATAWARE.STD_AREA 中选择 STD_AREA_ID,其中 AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '标准词典')
    和 A.AVAL_END_DT = '99991231235959'
    AND A.P_DIC_ID = AA.P_DIC_ID
    AND AA.P_DIC_ID = P.DIC_ID
    和 P.AVAL_END_DT = '99991231235959'
    AND AA.C_DIC_ID = C.DIC_ID
    和 C.AVAL_END_DT = '99991231235959'
    按 AA.P_DIC_ID、A.C_DIC_ID、P.DIC_LOG_NM 分组
    ) SIM 卡
    在 D.DIC_ID = SIM.DIC_ID 上
    WHERE A.STD_AREA_NM = '标准字典'
    AND A.STD_AREA_ID = D.STD_AREA_ID
    和 D.AVAL_END_DT = '99991231235959'
    AND D.DIC_GBN_CD = '0001' /* '0001': 字 */
    /* AND D.STANDARD_YN = 仅提取 'Y' 标准字 */
    ORDER BY D.DIC_LOG_NM,(如果为 D.STANDARD_YN,则为“Y”,然后为 1,否则为 2 结束)
    ;

    –标准术语词典查询
    SELECT ROW_NUMBER() OVER (ORDER BY D.DIC_LOG_NM) AS NO
    ,D.DIC_LOG_NM AS“术语逻辑名称”
    ,
    (
    选择 STRING_AGG(X.DIC_LOG_NM, '_')

    (
    选择 WRD.DIC_LOG_NM
    从 STD_DIC 作为 WRD
    左外连接 STD_WORD_COMBI AS C
    ON WRD.STD_AREA_ID = C.STD_AREA_ID
    AND WRD.DIC_ID = C.WORD_ID
    WHERE C.STD_AREA_ID =(从 DATAWARE.STD_AREA WHERE AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '标准词典'中选择 STD_AREA_ID)
    并且 C.TERM_ID = D.DIC_ID
    和 C.AVAL_END_DT = '99991231235959'
    按 C.ORDER_NO 订购
    ) 作为
    ) AS“词逻辑名称组合”
    ,D.DIC_PHY_NM AS“术语物理名称”
    ,D.DIC_DESC AS“术语表”
    ,DM.DOM_NM AS“域逻辑名”
    ,UPPER(DT.DATA_TYPE) AS“数据类型”
    — ,DM.DATA_LEN AS“长度”
    ,(当 DM.DATA_LEN = -1 时则为 'MAX' else text(DM.DATA_LEN) END) AS “长度”
    ,DM.DATA_SCALE AS“度数”
    ,”作为“工作定义”
    ,UPPER(DT.DATA_TYPE)
    ||案例
    当 DM.DATA_LEN 为 null 并且 UPPER(DT.DATA_TYPE) 不在 ('INT', 'DATETIME2') 中时则为 null
    当 DM.DATA_LEN 为 null 且 UPPER(DT.DATA_TYPE) in ('INT', 'DATETIME2') 时,则 ”
    当 DM.DATA_LEN = -1 并且 DM.DATA_SCALE 为 NULL 且 UPPER(DT.DATA_TYPE) in ('VARCHAR', 'VARBINARY') THEN '(MAX'
    否则 '('||DM.DATA_LEN
    结尾
    ||当 DM.DATA_LEN 不为 NULL 并且 DM.DATA_SCALE 为 NULL 时的情况 ')'
    当 DM.DATA_LEN 不为 NULL 且 DM.DATA_LEN > 0 且 DM.DATA_SCALE 不为 NULL 时,则 ','||DM.DATA_SCALE||')'
    当 DM.DATA_LEN 为 NULL 并且 DM.DATA_SCALE 为 NULL 并且 UPPER(DT.DATA_TYPE) in ('INT', 'DATETIME2') THEN ”
    ELSE NULL 结束
    AS“类型大小”
    FROM dataware.STD_AREA A
    ,dataware.STD_DIC D
    ,dataware.STD_DOM DM
    ,dataware.STD_DATATYPE DT
    WHERE A.STD_AREA_NM = '标准字典'
    AND A.STD_AREA_ID = D.STD_AREA_ID
    和 D.AVAL_END_DT = '99991231235959'
    AND D.DIC_GBN_CD = '0002' /* '0002': 术语 */
    AND D.STANDARD_YN = 'Y' /* 仅提取标准术语 */
    且 DM.STD_AREA_ID = D.STD_AREA_ID
    和 DM.AVAL_END_DT = '99991231235959'
    并且 DM.DOM_ID = D.DOM_ID
    AND DT.DB_TYPE = '0006' –SQL SERVER
    AND DT.CD_NO = DM.DATA_TYPE_CD
    ;

    –标准领域词典查询
    SELECT ROW_NUMBER() OVER (ORDER BY DG.DOM_GRP_NM, DM.DOM_NM) AS NO
    ,DG.DOM_GRP_NM AS“域名分类名称”
    ,DM.DOM_NM AS“域逻辑名”
    ,DM.KEY_DOM_PHY_NM AS “关键域物理名称”
    ,(case DM.DOM_DESC null then DM.KEY_DOM_NM else DM.DOM_DESC END) AS “域描述”
    ,UPPER(DT.DATA_TYPE) AS“数据类型名称”
    ,(当 DM.DATA_LEN = -1 时则为 'MAX' else text(DM.DATA_LEN) END) AS “长度”
    ,DM.DATA_SCALE AS“度数”
    ,UPPER(DT.DATA_TYPE)
    ||案例
    当 DM.DATA_LEN 为 null 并且 UPPER(DT.DATA_TYPE) 不在 ('INT', 'DATETIME2') 中时则为 null
    当 DM.DATA_LEN 为 null 且 UPPER(DT.DATA_TYPE) in ('INT', 'DATETIME2') 时,则 ”
    当 DM.DATA_LEN = -1 并且 DM.DATA_SCALE 为 NULL 且 UPPER(DT.DATA_TYPE) in ('VARCHAR', 'VARBINARY') THEN '(MAX'
    否则 '('||DM.DATA_LEN
    结尾
    ||当 DM.DATA_LEN 不为 NULL 并且 DM.DATA_SCALE 为 NULL 时的情况 ')'
    当 DM.DATA_LEN 不为 NULL 且 DM.DATA_LEN > 0 且 DM.DATA_SCALE 不为 NULL 时,则 ','||DM.DATA_SCALE||')'
    当 DM.DATA_LEN 为 NULL 并且 DM.DATA_SCALE 为 NULL 并且 UPPER(DT.DATA_TYPE) in ('INT', 'DATETIME2') THEN ”
    ELSE NULL 结束
    AS“类型大小”
    /*
    ,DM.KEY_DOM_NM AS “关键域名”
    */
    来自数据软件.STD_DOM DM
    ,dataware.STD_DOM_GRP DG
    ,dataware.STD_DATATYPE DT
    WHERE DM.STD_AREA_ID =(从 DATAWARE.STD_AREA WHERE AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '标准词典'中选择 STD_AREA_ID)
    和 DM.AVAL_END_DT = '99991231235959'
    并且 DG.STD_AREA_ID = DM.STD_AREA_ID
    和 DG.AVAL_END_DT = '99991231235959'
    并且 DG.DOM_GRP_ID = DM.DOM_GRP_ID
    和 DT.DB_TYPE = '0006'
    AND DT.CD_NO = DM.DATA_TYPE_CD
    ;

    • 头像照片 Zerom说道:

      感谢您分享标准字典查找 SQL。
      我在使用PostgreSQL版本时也会使用它。

      注释中不显示空格字符的缩进。
      我们来想个办法吧。

  2. 头像照片 KSM说道:

    在检查标准时,如果属性名称(CUSTOMER NUMBER)仅与英文单词组合,则会出现即使注册了标准术语,也无法组合标准单词并检查标准英语匹配的症状。我认为这与将分隔符视为下划线和空格的逻辑有关。
    前任)
    *标准词语、缩写
    顾客
    号码,否
    *标准术语、领域
    客户编号,编号 V10
    *标准域、数据类型
    数字 V10,VARCHAR(10)

  3. 头像照片 KSM说道:

    存储库数据库:PostgreSQL,标准化目标数据库:PostgreSQL

    SELECT ROW_NUMBER() OVER (ORDER BY D.DIC_LOG_NM) AS NO
    ,D.DIC_LOG_NM AS“字逻辑名”
    ,D.DIC_PHY_NM AS“字物理名称”
    ,D.DIC_PHY_FLL_NM AS“英文单词名称”
    ,D.DIC_DESC AS“字描述”
    ,D.STANDARD_YN AS “是否标准”
    ,(case D.ATTR_CLSS_YN when 'Y' then 'Y' else 'N' END) AS “是否是属性分类词”
    ,案件
    当 D.STANDARD_YN = 'Y' 并且 SIM.Standard 逻辑名称为 NULL 时,则 D.DIC_LOG_NM
    WHEN D.STANDARD_YN = 'Y' AND SIM.Standard 逻辑名称 IS NOT NULL THEN SIM.Standard 逻辑名称
    ELSE SIM.标准逻辑名称
    END “标准逻辑名称”
    ,SIM.同义词
    ,G.KEY_DOM_NM AS“域名分类名称”
    /*
    ,D.ENT_CLSS_YN AS “实体分类词是否?
    */
    FROM dataware.STD_AREA A
    ,dataware.STD_DIC D
    左外连接
    (选择 DM.KEY_DOM_NM
    ,MAX(DM.DOM_GRP_ID) DOM_GRP_ID
    ,MAX(DG.DOM_GRP_NM) DOM_GRP_NM
    来自数据软件.STD_DOM DM
    ,dataware.STD_DOM_GRP DG
    其中 DM.STD_AREA_ID = '47430eed-15a9-4697-90e3-a70040266517'
    和 DM.AVAL_END_DT = '99991231235959'
    并且 DG.STD_AREA_ID = DM.STD_AREA_ID
    和 DG.AVAL_END_DT = '99991231235959'
    并且 DM.DOM_GRP_ID = DG.DOM_GRP_ID
    按 DM.KEY_DOM_NM 分组) G
    在 D.DIC_LOG_NM = G.KEY_DOM_NM 上
    左外连接
    (
    – 如果标准
    选择 A.P_DIC_ID“组 ID”
    ,A.P_DIC_ID DIC_ID
    ,P.DIC_LOG_NM “标准逻辑名称”
    ,STRING_AGG(C.DIC_LOG_NM, ',' ORDER BY A.C_DIC_ID) “同义词”
    FROM dataware.STD_DIC_REL A
    左外连接数据件.STD_DIC P
    在 A.P_DIC_ID = P.DIC_ID 和 P.AVAL_END_DT = '99991231235959'
    左外连接数据件.STD_DIC C
    在 A.C_DIC_ID = C.DIC_ID 和 C.AVAL_END_DT = '99991231235959'
    其中 1=1
    AND A.P_STD_AREA_ID =(从 DATAWARE.STD_AREA 中选择 STD_AREA_ID,其中 AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '0.标准词典')
    和 A.AVAL_END_DT = '99991231235959'
    按 A.P_DIC_ID、P.DIC_LOG_NM 分组
    联合所有
    – 如果出现非标准情况
    选择 AA.P_DIC_ID“组 ID”
    ,A.C_DIC_ID DIC_ID
    ,P.DIC_LOG_NM “标准逻辑名称”
    ,STRING_AGG(CASE WHEN AA.C_DIC_ID = A.C_DIC_ID THEN P.DIC_LOG_NM ELSE C.DIC_LOG_NM END, ',' 按 CASE WHEN AA.C_DIC_ID = A.C_DIC_ID THEN '0' ELSE AA.C_DIC_ID END) “同义词”
    FROM dataware.STD_DIC_REL A
    ,dataware.STD_DIC_REL AA
    ,dataware.STD_DIC P
    ,dataware.STD_DIC C
    其中 1=1
    AND A.P_STD_AREA_ID =(从 DATAWARE.STD_AREA 中选择 STD_AREA_ID,其中 AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '0.标准词典')
    和 A.AVAL_END_DT = '99991231235959'
    AND A.P_DIC_ID = AA.P_DIC_ID
    AND AA.P_DIC_ID = P.DIC_ID
    和 P.AVAL_END_DT = '99991231235959'
    AND AA.C_DIC_ID = C.DIC_ID
    和 C.AVAL_END_DT = '99991231235959'
    按 AA.P_DIC_ID、A.C_DIC_ID、P.DIC_LOG_NM 分组
    ) SIM 卡
    在 D.DIC_ID = SIM.DIC_ID 上
    WHERE A.STD_AREA_NM = '0.标准字典'
    AND A.STD_AREA_ID = D.STD_AREA_ID
    和 D.AVAL_END_DT = '99991231235959'
    AND D.DIC_GBN_CD = '0001' /* '0001': 字 */
    /* AND D.STANDARD_YN = 仅提取 'Y' 标准字 */
    ORDER BY D.DIC_LOG_NM,(如果为 D.STANDARD_YN,则为“Y”,然后为 1,否则为 2 结束)
    ;

    –标准术语词典查询
    SELECT ROW_NUMBER() OVER (ORDER BY D.DIC_LOG_NM) AS NO
    ,D.DIC_LOG_NM AS“术语逻辑名称”
    ,
    (
    选择 STRING_AGG(X.DIC_LOG_NM, '_')

    (
    选择 WRD.DIC_LOG_NM
    从 STD_DIC 作为 WRD
    左外连接 STD_WORD_COMBI AS C
    ON WRD.STD_AREA_ID = C.STD_AREA_ID
    AND WRD.DIC_ID = C.WORD_ID
    WHERE C.STD_AREA_ID =(从 DATAWARE.STD_AREA 选择 STD_AREA_ID WHERE AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '0.标准词典')
    并且 C.TERM_ID = D.DIC_ID
    和 C.AVAL_END_DT = '99991231235959'
    和 WRD.AVAL_END_DT = '99991231235959'
    按 C.ORDER_NO 订购
    ) 作为
    ) AS“词逻辑名称组合”
    ,D.DIC_PHY_NM AS“术语物理名称”
    ,D.DIC_DESC AS“术语表”
    ,DM.DOM_NM AS“域逻辑名”
    ,UPPER(DT.DATA_TYPE) AS“数据类型”
    — ,DM.DATA_LEN AS“长度”
    ,(当 DM.DATA_LEN = -1 时则为 'MAX' else text(DM.DATA_LEN) END) AS “长度”
    ,DM.DATA_SCALE AS“度数”
    ,”作为“工作定义”
    , 代替(
    上部(DT.DATA_TYPE)
    ||'(‘
    ||当 DM.DATA_LEN 为 null 时,则 ” else cast(DM.DATA_LEN as text) end
    ||当 DM.DATA_SCALE 为 null 时,则 ” else cast(DM.DATA_SCALE as text) end
    ||’)’
    , '()', ”) AS “类型大小”
    FROM dataware.STD_AREA A
    ,dataware.STD_DIC D
    ,dataware.STD_DOM DM
    ,dataware.STD_DATATYPE DT
    WHERE A.STD_AREA_NM = '0.标准字典'
    AND A.STD_AREA_ID = D.STD_AREA_ID
    和 D.AVAL_END_DT = '99991231235959'
    AND D.DIC_GBN_CD = '0002' /* '0002': 术语 */
    AND D.STANDARD_YN = 'Y' /* 仅提取标准术语 */
    且 DM.STD_AREA_ID = D.STD_AREA_ID
    和 DM.AVAL_END_DT = '99991231235959'
    并且 DM.DOM_ID = D.DOM_ID
    和 DT.DB_TYPE = '0024'
    AND DT.CD_NO = DM.DATA_TYPE_CD
    ;

    –标准领域词典查询
    SELECT ROW_NUMBER() OVER (ORDER BY DG.DOM_GRP_NM, DM.DOM_NM) AS NO
    ,DM.key_dom_nm AS “域名分类名称”
    ,DM.DOM_NM AS“域逻辑名”
    ,DM.KEY_DOM_PHY_NM AS “关键域物理名称”
    ,(case DM.DOM_DESC null then DM.KEY_DOM_NM else DM.DOM_DESC END) AS “域描述”
    ,UPPER(DT.DATA_TYPE) AS“数据类型名称”
    ,DM.DATA_LEN AS“长度”
    ,DM.DATA_SCALE AS“度数”
    , 代替(
    上部(DT.DATA_TYPE)
    ||'(‘
    ||当 DM.DATA_LEN 为 null 时,则 ” else cast(DM.DATA_LEN as text) end
    ||当 DM.DATA_SCALE 为 null 时,则 ” else cast(DM.DATA_SCALE as text) end
    ||’)’
    , '()', ”) AS “类型大小”
    , dg.dom_grp_nm 作为“标准域组名称”
    /*
    ,DM.KEY_DOM_NM AS “关键域名”
    */
    来自数据软件.STD_DOM DM
    ,dataware.STD_DOM_GRP DG
    ,dataware.STD_DATATYPE DT
    WHERE DM.STD_AREA_ID =(从 DATAWARE.STD_AREA WHERE AVAL_END_DT = '99991231235959' AND STD_AREA_NM = '0.标准词典中选择 STD_AREA_ID)
    和 DM.AVAL_END_DT = '99991231235959'
    并且 DG.STD_AREA_ID = DM.STD_AREA_ID
    和 DG.AVAL_END_DT = '99991231235959'
    并且 DG.DOM_GRP_ID = DM.DOM_GRP_ID
    和 DT.DB_TYPE = '0024'
    AND DT.CD_NO = DM.DATA_TYPE_CD
    ;

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CN简体中文