1.概述
主要介绍SQL脚本规则的使用,SQL脚本规则支持使用SQL语句及存储过程对质检数据进行质量检查。
2. SQL语句检查
通过存储过程对质检主题表数据进行检查之前,需要先在对应数据库连接池内自定义存储过程。规则执行时系统调用存储过程,传递数据期,数据级次相关参数,由存储过程返回临时表。示例如下:
1)创建临时表
CREATE TABLE SQLCHECKTABLE2(
DATACLASS VARCHAR(50),
CHECKSTATE INTEGER ,
SYS_XDATA_ROWID VARCHAR(50),
FIELDVALUES VARCHAR(50),
FIELDVALUEDESC VARCHAR(50))
//以上临时表sql中除了 SYS_XDATA_ROWID是关键字字段外,其余是固定写法
2)创建存储过程
CREATE OR REPLACE PROCEDURE SQLCHECK_TEST2(
PERIOD IN VARCHAR,//定义数据期参数
DATACLASS IN VARCHAR,//定义数据级次参数
TMPTABLE OUT VARCHAR) AS
BEGIN
DELETE SQLCHECKTABLE2;//清空临时表SQLCHECKTABLE2
COMMIT;
EXECUTE IMMEDIATE 'INSERT INTO SQLCHECKTABLE2(DATACLASS,CHECKSTATE,SYS_XDATA_ROWID)//将数据插入临时表SQLCHECKTABLE2
(SELECT UPIDC18 AS DATACLASS, (CASE WHEN A.E15C2 is null THEN 0 ELSE 1 END) AS CHECKSTATE,A.SYS_XDATA_ROWID FROM F_XXB3_COPY A WHERE A.BBQC11 ='''||PERIOD||''')';//UPIDC18为数据级次字段,BBQC11为数据期字段,F_XXB3_COPY为质检主题表对应库表名称,SYS_XDATA_ROWID为关键字字段
COMMIT;
TMPTABLE := 'SQLCHECKTABLE2';
END SQLCHECK_TEST2;
3)新建sql规则,主题表选择F_XXB3_COPY,存储过程选择SQLCHECK_TEST2,然后保存规则。
注意:模型启动Saprk引擎后,不支持选择存储过程进行数据质检。
请先登录