TC数据库相关整理

  • 1.常用的查找表的方法
  • 2.用到过的表
  • 3.使用过的语句
    • 1.分类相关
    • 2.创建视图
    • 3.创建package
    • 4.BOM相关
  • 4.写在后面

1.常用的查找表的方法

在bmide中,对于BusinessObject的子类,都存在一个存储类与之对应,例如常用的ItemRevision类,存在ItemRevision存储类,如下图:

与之相对应的数据库表名即为P+ItemRevision,也就是说,存储类名开头加上"P",就是数据库表名。

在bmide中点击进入存储类,就能找到属性对应存储在哪个存储类里,也就能找到相应的数据表。

例如上图的H9AsmFinPrdRevision类,h9InputVA存储与PH9AsmFinPrdRevision表中,而其他的属性继承于ItemRevision,存储于PItemRevision中。

2.用到过的表

表名 表的作用 备注
PPOM_USER 存储用户信息
PPOM_GROUP 存储分组信息
PSMLB0 分类信息
PLISTOFVALUES LOV存储表 这个表下面还有细分,比如PLISTOFVALUESSTRING等。
PFND0LOVDICTIONARYENTRY LOV数据字典 存储了所有lov的真实值
PL10N_FND0ENTRY LOV显示值 存储了所有lov的真实值对应的显示值
PNOTETYPE 、PNOTE_TYPES_0 、PNOTE_TEXTS_0 BOM注释属性 存储BOM行注释属性
持续更新

3.使用过的语句

1.分类相关

1.分类树获取

"SELECT t_01.puid, t_01.pcid, t_01.pcflags, t_01.pname "+ "FROM PSMLB0 t_01 "+ "WHERE (t_01.pklassi = ?) "+ "UNION SELECT t_03.puid, t_03.pcid, t_03.pcflags, t_03.pname "+ "FROM PPARENT t_02 , PSMLB0 t_03 "+ "WHERE (((t_02.pseq = 0) AND (t_02.pval_0 = ?)) AND (t_02.puid = t_03.puid)) ORDER BY 2 ASC";

来源:辉哥tech

2.创建视图

1.查找最新版本,去除基线小版本

CREATE OR REPLACE VIEW LATESTREV AS
SELECT REV.PUID, ITEM.PITEM_ID, REV.PITEM_REVISION_ID
FROM PITEMREVISION REV, PITEM ITEM, PWORKSPACEOBJECT OBJ
WHERE ITEM.PUID = REV.RITEMS_TAGU AND OBJ.PUID = REV.PUID AND OBJ.PACTIVE_SEQ != '0' AND REV.PITEM_REVISION_ID = (SELECT MAX(TREV.PITEM_REVISION_ID) FROM PITEMREVISION TREV, PITEM TITEM WHERE TREV.PITEM_REVISION_ID NOT LIKE '%.%' AND TITEM.PUID = TREV.RITEMS_TAGU AND ITEM.PUID = TITEM.PUID);

2.查找最新有状态的版本 排除基线小版本 不指定状态

CREATE
OR REPLACE VIEW LATESTRELEASEDREV AS
SELECT REV.PUID, ITEM.PITEM_ID, REV.PITEM_REVISION_ID, RELEASE.PNAME
FROM PITEMREVISION REV, PITEM ITEM, PRELEASE_STATUS_LIST RELEASE_LIST, PWORKSPACEOBJECT OBJ, PRELEASESTATUS RELEASE
WHERE ITEM.PUID = REV.RITEMS_TAGU AND OBJ.PUID = REV.PUID AND OBJ.AOID = RELEASE_LIST.PUID AND RELEASE_LIST.PVALU_0 = RELEASE.PUID AND OBJ.PACTIVE_SEQ != '0' AND REV.PITEM_REVISION_ID = (SELECT MAX(TREV.PITEM_REVISION_ID) FROM PITEMREVISION TREV, PITEM TITEM, PRELEASE_STATUS_LIST TRELEASE_LIST, PWORKSPACEOBJECT TOBJ, PRELEASESTATUS TRELEASE WHERE TREV.PITEM_REVISION_ID NOT LIKE '%.%' AND TOBJ.PUID = TREV.PUID AND TOBJ.AOID = TRELEASE_LIST.PUID AND TRELEASE_LIST.PVALU_0 = TRELEASE.PUID AND TITEM.PUID = TREV.RITEMS_TAGU AND ITEM.PUID = TITEM.PUID)

3.查找最新有状态的版本 排除基线小版本 指定状态"TCM Released"

CREATE OR REPLACE VIEW LATESTRELEASEDREV_TCM_Released AS
SELECT REV.PUID, ITEM.PITEM_ID, REV.PITEM_REVISION_ID, RELEASE.PNAME
FROM PITEMREVISION REV, PITEM ITEM, PRELEASE_STATUS_LIST RELEASE_LIST, PWORKSPACEOBJECT OBJ, PRELEASESTATUS RELEASE
WHERE ITEM.PUID = REV.RITEMS_TAGU AND OBJ.PUID = REV.PUID AND OBJ.AOID = RELEASE_LIST.PUID AND RELEASE_LIST.PVALU_0 = RELEASE.PUID AND OBJ.PACTIVE_SEQ != '0' AND REV.PITEM_REVISION_ID = (SELECT MAX(TREV.PITEM_REVISION_ID) FROM PITEMREVISION TREV, PITEM TITEM, PRELEASE_STATUS_LIST TRELEASE_LIST, PWORKSPACEOBJECT TOBJ, PRELEASESTATUS TRELEASE WHERE TREV.PITEM_REVISION_ID NOT LIKE '%.%' AND TOBJ.PUID = TREV.PUID AND TOBJ.AOID = TRELEASE_LIST.PUID AND TRELEASE_LIST.PVALU_0 = TRELEASE.PUID AND TITEM.PUID = TREV.RITEMS_TAGU AND TRELEASE.PNAME = 'TCM Released' AND ITEM.PUID = TITEM.PUID)

4.创建子-父关系的视图

CREATE OR REPLACE VIEW CHILD_PARENT AS
SELECT CREV.PUID AS PCHILD_PUID, PREV.PUID AS PPARENT_PUID, OBJ.POBJECT_TYPE AS PPARENT_TYPE
FROM PITEMREVISION CREV, PITEMREVISION PREV, PITEM CITEM, PPSOCCURRENCE OCC, PSTRUCTURE_REVISIONS STR, PWORKSPACEOBJECT OBJ
WHERE (CITEM.PUID = OCC.RCHILD_ITEMU OR CREV.PUID = OCC.RCHILD_ITEMU) AND OCC.RPARENT_BVRU = STR.PVALU_0 AND STR.PUID = PREV.PUID AND OBJ.PUID = PREV.PUID AND CITEM.PUID = CREV.RITEMS_TAGU AND OBJ.PACTIVE_SEQ != '0'

3.创建package

1.根据LOV名称及真实值获取显示值

create or replace package CMService isfunction getLovValueDes(typeName in varchar2,LovValue in varchar2) return varchar2;end CMService;create or replace package body CMService is--根据LOV类型及真实值获取显示值function getLovValueDes(typeName in varchar2,LovValue in varchar2) return varchar2 isresult varchar2(50);beginSELECT substr(t3.pval_0,49) into resultFROM PLISTOFVALUES t1, PFND0LOVDICTIONARYENTRY t2, PL10N_FND0ENTRY t3where t1.puid = t2.rfnd0lovuand t2.puid = t3.puidand t1.plov_name = typeNameand t3.pseq = 1and t2.pfnd0entry= LovValue;return result;end;end CMService;

来源:储老师

4.BOM相关

1.查询指定物料下层

SELECT *
FROM (SELECT t.*, ROW_NUMBER() OVER (PARTITION BY pitem_id ORDER BY pitem_revision_id DESC) AS numFROM (SELECT c.pitem_id, d.pitem_revision_id, a.pqty_value, l.pobject_nameFROM PPSOCCURRENCE a, pworkspaceobject l, (SELECT c.pitem_id, e.pitem_revision_id, e.psequence_id, e.puid AS rev_id, b.puid AS bv_id, a.puid AS bvr_idFROM ppsbomviewrevision aJOIN ppsbomview b ON a.rbom_viewu = b.puid JOIN pitem c ON b.rparent_itemu = c.puid JOIN pstructure_revisions d ON a.puid = d.pvalu_0 JOIN pitemrevision e ON d.puid = e.puid ) b, pitem c, pitemrevision dWHERE a.rparent_bvru = b.bvr_idAND a.rchild_itemu = c.puidAND a.rchild_itemu = d.ritems_taguAND b.pitem_id = 'item_id'AND b.pitem_revision_id = '版本号'AND l.puid = c.puid) t
)
SELECT c.pitem_id, d.pitem_revision_id, d.puid, a.pqty_value, l.pobject_name, rev_id, l.pobject_type, a.RNOTES_REFU, a.PSEQ_NO, a.pext_transform_rot00, a.pext_transform_rot10, a.pext_transform_rot20, a.pext_transform_per0, a.pext_transform_rot01, a.pext_transform_rot11, a.pext_transform_rot21, a.pext_transform_per1, a.pext_transform_rot02, a.pext_transform_rot12, a.pext_transform_rot22, a.pext_transform_per2, a.pext_transform_tra0, a.pext_transform_tra1, a.pext_transform_tra2, a.pext_transform_invscale
FROM PPSOCCURRENCE a, pworkspaceobject l, (SELECT IT.PITEM_ID, REV.PITEM_REVISION_ID, REV.PSEQUENCE_ID, REV.PUID AS REV_ID, RL.PVALU_0 AS BVR_IDFROM PITEM IT, PITEMREVISION REV, PSTRUCTURE_REVISIONS RLWHERE IT.PUID = REV.RITEMS_TAGUAND REV.PUID = RL.PUID
) b, pitem c, pitemrevision d
WHERE a.rparent_bvru = b.bvr_idAND a.rchild_itemu = c.puidAND a.rchild_itemu = d.ritems_taguAND b.pitem_id = '父id'AND b.pitem_revision_id = '版本号'AND l.puid = c.puidAND l.pactive_seq != 0AND d.PITEM_REVISION_ID = (SELECT MAX(PITEM_REVISION_ID)FROM PITEMREVISIONWHERE RITEMS_TAGU = c.PUID);

2.通过子件id,查找父项最新版本(LASTESTREV是上面的最新版本视图)

SELECT prev.puid, prev.pitem_revision_id, pitem.pitem_id
FROM pitem citem, PPSOCCURRENCE pps, PSTRUCTURE_REVISIONS pst, pitemrevision prev, pitem pitem, LASTESTREV
WHERE citem.pitem_id = 'LSV2223FFGG00001_G001L01'AND citem.puid = pps.rchild_itemuAND pps.rparent_bvru = pst.pvalu_0AND pst.puid = prev.puidAND pitem.puid = prev.ritems_taguAND lastestrev.pitem_id = pitem.pitem_id;

3.由子找到所有上层(CHILD_PARENT是上面提到的视图)

SELECT DISTINCT PCHILD_PUID, PPARENT_PUID, PPARENT_TYPE
FROM CHILD_PARENT START WITH PCHILD_PUID IN ('子件版本uid') CONNECT BY PCHILD_PUID = PRIOR PPARENT_PUID

4.写在后面

此tech积累TC数据库相关知识,持续更新。

TC数据库相关整理(持续更新)相关推荐

  1. Java自学视频整理(持续更新中...)

    1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播客) 张孝祥2010年贺岁视频:Java高新技术 ...

  2. 工作中php遇到的问题以及常用函数整理(持续更新)

    说明 以下整理的文档是本人2017年从事php开发到目前遇到的问题的部分整理,因为上家公司有改错本这个东西,偶然间翻开,整理了一部分,后续遇到问题会持续更新,最新更新的内容会放到最前面. php开启错 ...

  3. 小样本学习元学习经典论文整理||持续更新

      本文整理了近些年来有关小样本学习的经典文章,并附上了原文下载链接以及论文解读链接.关注公众号"深视",回复"小样本学习",可以打包下载全部文章.该文我会持续 ...

  4. HCIA-GaussDB 华为认证数据库工程师(持续更新中60%)

    // An highlighted block 第一.二章主要介绍数据库的发展史,基本概念等内容, 第三.四章节主要介绍GaussDB数据库的SQL语法, 第五章介绍数据库安全相关内容, 第六章介绍G ...

  5. 【资源帖】漏洞平台(国内外)+企业SRC整理-持续更新

    前言 不挖洞的安服工程师不是一个合格的白帽子,整理一波各大SRC平台的名单,欢迎评论补充,共同学习. 更新记录 3月6日 新增企业SRC  字节跳动安全中心 综合SRC平台-国内 漏洞银行 漏洞盒子 ...

  6. Redis4.0、5.0、6.0、7.0特性整理(持续更新)

    最近研究研究新版本redis的新特性,网上查了查资料,这里记录一下. 0. Redis的版本迭代和里程碑 Redis从发布至今,已经有十余年的时光了,一直遵循着自己的命名规则: 版本号第二位如果是奇数 ...

  7. iOS 知识点整理 (持续更新...)

    整理了些iOS相关的基础问题,每个问题可能会再写些扩展,需要具体了解可以看题目下方的链接 如有错漏,欢迎指出,谢谢 一.Swift 1.给一个数组,要求写一个函数,交换数组中的两个元素(swift可用 ...

  8. 浏览器相关(持续更新)

    秋招后的一些记录,看了很多东西想写下来,希望自己可以随时的查看,也希望有错误的地方大神可以指正. 1.浏览器的主要组成部分 用户界面.浏览器引擎.呈现引擎.网络.用户界面后端.JavaScript解释 ...

  9. 前端面试知识自己的一些整理 ---持续更新中

    - title: 自己整理的面试复习资料 date: 2019-03-20 12:27:51 tags: 面试 前端 CSS3+H5 [CSS3.0 帮助文档.chm](CSS3.0 帮助文档.chm ...

最新文章

  1. 「学习笔记-Linux」学习Shell Script
  2. match_parent和fill_parent的区别
  3. 《剑指offer》第十三题(机器人的运动范围)
  4. nginx / 安装、部署和启动
  5. Web.xml配置详解之context-param(转)
  6. 【网络编程】之八、异步选择WSAAsyncSelect
  7. Mono 2.0正式发布了
  8. pku 3207 Ikki's Story IV - Panda's Trick 2-sat判定是否存在可行解
  9. 不会真有人觉得聊天机器人难吧——开篇
  10. 基于matlab的简易诊断系统,基于matlab的图像识别
  11. 【Javascript】用 js 写一个模板引擎
  12. Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
  13. 山寨机java游戏下载_Q版水浒-山寨英雄
  14. 【强化学习】Policy Gradient(策略梯度)算法详解
  15. Appium-W3C Action(W3C动作)
  16. 数商云B2B跨境电子商务平台综合服务解决方案
  17. 电子标签读取异常怎么办
  18. 如何破解Aspose.word带水印问题
  19. android 神气插件 自动补全tabnine
  20. CSS中100%和inherit(继承)的区别,以及inherit的简单应用

热门文章

  1. 基于WSL搭建ESP8266开发环境
  2. 教你使用华为ENSP模拟器配置静态NAT(一)
  3. Java使用freemarker生成word文件
  4. Nginx 环境下php web服务解决多接口和找不到js,css文件问题
  5. 一个最大化条件概率问题
  6. HaaS轻应用(JavaScript)总览
  7. Java 计算任意两天之间相隔的天数
  8. 超强大的dnsmasq及hosts全自动脚本扶墙去广告详细教程
  9. hibernate 标致符生成器 (转载)
  10. X264的ARMV7-a的交叉编译及优化运行