【泛微OA】流程中常用的sql语句之流程发起、审核、归档的查询视图

 想对物料的新增、变更、合并流程做个单独页面,分别展示其-----已发起、待审核、已归档。

由于其展示页面不能用系统的标准,就取个巧用sql做个查询视图,然后给其调用。

部分字段说明

-- requestid 请求id
-- requestmark 请求说明;类似流程编号
-- creater 创建人
-- createdate 创建日期
-- userid 类似节点操作人
-- formid 表单或单据id,类似数据库表formtable_main_821,但取821然后再加个"-"横线
--isremark 操作类型 integer 0:未操作 1:转发 2:已操作 4:归档 5:超时 8:抄送(不需提交) 9:抄送(需提交) a: 意见征询 b: 回复 h: 转办 j: 转办提交 11:传阅 6:自动审批(审批中)
-- currentnodetype 当前节点类型 0:创建,1:批准,2:提交,3:归档

--物料 已发起  面向的是 自己填写的单据。
CREATE view  vm_mrg_fmmaterial_sq as
select row_number() OVER(ORDER BY a.requestid) AS id,a.requestid,a.requestmark,a.creater,a.createdate from workflow_requestbase as a 
left join workflow_base as b on a.workflowid=b.id
where b.formid in ('-315','-321','-322')

--物料 待审核 面向的是 待自己审核的单据
CREATE view  vm_mrg_fmmaterial_sh as
SELECT row_number() OVER(ORDER BY requestid) AS id,* from (
select DISTINCT a.requestid,a.requestmark,a.creater,a.createdate,c.userid
from workflow_requestbase as a 
left join workflow_base as b on a.workflowid=b.id
left join workflow_currentoperator  c ON a.requestid = c.requestid
where b.formid in ('-315','-321','-322') and a.currentnodetype in (1,2) 
and c.isremark in (0,1)
) as t
 


--物料 已归档  面向的是 自己填写单据的归档 + 自己审核的单据 归档
CREATE view  vm_mrg_fmmaterial_gd as
SELECT row_number() OVER(ORDER BY requestid) AS id,* from (
select DISTINCT a.requestid,a.requestmark,c.userid as users,a.createdate
from workflow_requestbase as a 
left join workflow_base as b on a.workflowid=b.id
left join workflow_currentoperator  c ON a.requestid = c.requestid
where b.formid in ('-315','-321','-322') and a.currentnodetype in (3) 
) as t

<think>好的,我需要帮助用户查找OA系统相关的数据库字典SQL查询语句示例。首先,我需要确认用户的具体需求。用户可能想要了解OA系统中数据库表结构的信息,例如表名、字段名、字段类型等,以便进行数据查询、报表生成或二次开发。 接下来,我需要回忆OA系统常用数据库结构。OA通常使用Oracle或SQL Server作为后端数据库。不同的模块可能对应不同的表,比如流程审批、人事管理、文档管理等。常见的系统表可能包括流程相关的表(如流程实例、节点信息)、用户组织表(如部门、员工)、表单数据表等。 由于用户提到“数据库字典”,这可能涉及系统表或视图,比如存储元数据的信息模式(information_schema)中的表。在Oracle中,数据字典视图如ALL_TABLES、ALL_TAB_COLUMNS可能有用。在SQL Server中,则是INFORMATION_SCHEMA.TABLES和INFORMATION_SCHEMA.COLUMNS。 接下来,我需要构建几个示例SQL语句。例如,查询所有表名、查询某个表的字段信息、或者根据字段名查找相关表。需要注意的是,不同数据库系统的SQL语法可能不同,所以可能需要分别给出Oracle和SQL Server的例子。 同时,需要提醒用户谨慎操作,直接查询系统表可能存在风险,建议在测试环境进行,并参考官方文档。另外,不同版本的OA数据库结构可能有差异,最好根据实际环境调整。 最后,生成相关问题,可能涉及优化查询、特定模块的表结构、数据备份恢复等,以帮助用户进一步探索。</think>### OA数据库字典查询方法 OA系统通常基于关系型数据库(如Oracle、MySQLSQL Server),其数据库字典可通过查询系统表或视图获取。以下是常见SQL示例: #### 1. **查询所有表名** ```sql -- Oracle SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'OA数据库用户名'; -- SQL Server SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'; ``` #### 2. **查询特定表的字段信息** ```sql -- 查询表`wf_formmain`的字段名、类型、注释 -- Oracle SELECT COLUMN_NAME, DATA_TYPE, COMMENTS FROM ALL_TAB_COLUMNS JOIN ALL_COL_COMMENTS ON ALL_TAB_COLUMNS.TABLE_NAME = ALL_COL_COMMENTS.TABLE_NAME WHERE ALL_TAB_COLUMNS.TABLE_NAME = 'WF_FORMMAIN'; -- MySQL SHOW FULL COLUMNS FROM wf_formmain; ``` #### 3. **根据字段名模糊匹配表** ```sql -- 查找包含`approve`关键字的字段 SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%APPROVE%'; ``` #### 注意事项: - 实际表名可能因版本不同存在差异(如前缀`wf_`、`form_`等)[^1]。 - 生产环境操作需谨慎,建议联系管理员或查阅官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值