TC数据库相关整理(持续更新)
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数据库相关整理(持续更新)相关推荐
- Java自学视频整理(持续更新中...)
1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播客) 张孝祥2010年贺岁视频:Java高新技术 ...
- 工作中php遇到的问题以及常用函数整理(持续更新)
说明 以下整理的文档是本人2017年从事php开发到目前遇到的问题的部分整理,因为上家公司有改错本这个东西,偶然间翻开,整理了一部分,后续遇到问题会持续更新,最新更新的内容会放到最前面. php开启错 ...
- 小样本学习元学习经典论文整理||持续更新
本文整理了近些年来有关小样本学习的经典文章,并附上了原文下载链接以及论文解读链接.关注公众号"深视",回复"小样本学习",可以打包下载全部文章.该文我会持续 ...
- HCIA-GaussDB 华为认证数据库工程师(持续更新中60%)
// An highlighted block 第一.二章主要介绍数据库的发展史,基本概念等内容, 第三.四章节主要介绍GaussDB数据库的SQL语法, 第五章介绍数据库安全相关内容, 第六章介绍G ...
- 【资源帖】漏洞平台(国内外)+企业SRC整理-持续更新
前言 不挖洞的安服工程师不是一个合格的白帽子,整理一波各大SRC平台的名单,欢迎评论补充,共同学习. 更新记录 3月6日 新增企业SRC 字节跳动安全中心 综合SRC平台-国内 漏洞银行 漏洞盒子 ...
- Redis4.0、5.0、6.0、7.0特性整理(持续更新)
最近研究研究新版本redis的新特性,网上查了查资料,这里记录一下. 0. Redis的版本迭代和里程碑 Redis从发布至今,已经有十余年的时光了,一直遵循着自己的命名规则: 版本号第二位如果是奇数 ...
- iOS 知识点整理 (持续更新...)
整理了些iOS相关的基础问题,每个问题可能会再写些扩展,需要具体了解可以看题目下方的链接 如有错漏,欢迎指出,谢谢 一.Swift 1.给一个数组,要求写一个函数,交换数组中的两个元素(swift可用 ...
- 浏览器相关(持续更新)
秋招后的一些记录,看了很多东西想写下来,希望自己可以随时的查看,也希望有错误的地方大神可以指正. 1.浏览器的主要组成部分 用户界面.浏览器引擎.呈现引擎.网络.用户界面后端.JavaScript解释 ...
- 前端面试知识自己的一些整理 ---持续更新中
- title: 自己整理的面试复习资料 date: 2019-03-20 12:27:51 tags: 面试 前端 CSS3+H5 [CSS3.0 帮助文档.chm](CSS3.0 帮助文档.chm ...
最新文章
- 「学习笔记-Linux」学习Shell Script
- match_parent和fill_parent的区别
- 《剑指offer》第十三题(机器人的运动范围)
- nginx / 安装、部署和启动
- Web.xml配置详解之context-param(转)
- 【网络编程】之八、异步选择WSAAsyncSelect
- Mono 2.0正式发布了
- pku 3207 Ikki's Story IV - Panda's Trick 2-sat判定是否存在可行解
- 不会真有人觉得聊天机器人难吧——开篇
- 基于matlab的简易诊断系统,基于matlab的图像识别
- 【Javascript】用 js 写一个模板引擎
- Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
- 山寨机java游戏下载_Q版水浒-山寨英雄
- 【强化学习】Policy Gradient(策略梯度)算法详解
- Appium-W3C Action(W3C动作)
- 数商云B2B跨境电子商务平台综合服务解决方案
- 电子标签读取异常怎么办
- 如何破解Aspose.word带水印问题
- android 神气插件 自动补全tabnine
- CSS中100%和inherit(继承)的区别,以及inherit的简单应用