SP_FUN_PAG_SQL书写规范

更新时间:2023-08-07 02:03:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

MES SP/FUN/SQL 書寫規范

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

大綱

名稱定義 變量定義 書寫格式 異常拋轉

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

名稱的定義

名稱: Procedure -> SP_(模組)_(具體功能)_(細項) (控制在20個字符內) 如; SP_CCS_FXM_6633 Function-> FU_(具體功能) (控制在20個字符內) 如: FU_GETPASSWORD Package-> PAG_(模組)_(具體功能) (控制在20個字符內) 如:PAG_CCS_FIXITEM

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

變量定義規則

變量定義

所有的字符使用大寫SP/FUN 傳入傳出參數統一以: P開頭 (P_(具體欄位信息)); 內部變量使用V_(具體含義的信息) 加傳的變量作為Column或用途的英文名稱. 如 P_ID IN VARCHAR2,---內控 P_SN IN VARCHAR2,---客戶序號 P_OPROUTESEQNO NUMBER,---站別序號 IS V_COUNT------統計使用 …….

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

書寫格式

第二層在第一層基礎上往後移2字符 如: BEGIN IF 條件 THEN …… END IF; EXCEPTION END;

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

CREATE OR REPLACE PROCEDURE LINK_SN_GEN(P_DEV IN DEVICE.DEVICE%TYPE, P_TYP IN VARCHAR2, P_CLASS IN DEVINFO.CLASS%TYPE, P_FIELD IN VARCHAR2, P_FLAG IN VARCHAR2, P_ISN IN ISN.ISN%TYPE, P_RET OUT NUMBER, P_MSG OUT VARCHAR2, P_NOLINK IN WK_ACT.PNOLINK%TYPE DEFAULT '?')

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

IS EXERROR EXCEPTION; V_ISN ISN.ISN%TYPE; V_OP OP.OP%TYPE; V_SPNAME VARCHAR2(30); V_SN http://www.77cn.com.cn%TYPE; V_INFO http://www.77cn.com.cn%TYPE; V_CLSEC DEVINFO.CLASS%TYPE; V_TZ TZ.TZ%TYPE; V_MO MO.MO%TYPE; V_MOROW MO%ROWTYPE; V_ROUTEFLAG ROUTE.ROUTEFLAG%TYPE;

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

V_N PLS_INTEGER; V_CNT PLS_INTEGER; V_EC http://www.77cn.com.cn%TYPE; V_SEQMAX DEVINFO.SEQ%TYPE; V_DEV DEVICE%ROWTYPE; V_SQLSTMT VARCHAR2(1000); V_CURHANDLE PLS_INTEGER; V_ROWSPROCESSED PLS_INTEGER; EXOK EXCEPTION; V_VROUTE ROUTE.ROUTE%TYPE; V_STEP ROUTE_STEP.STEP%TYPE; V_ROUTE_STEP ROUTE_STEP%ROWTYPE; --

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

-- Declare constants -V_CLASSOP CONSTANT DEVINFO.CLASS%TYPE := 1; -- OP C_CLASSSNS CONSTANT DEVINFO.CLASS%TYPE := 42; -- RESERVED SN DATA IN LOOP V_CLASSISN CONSTANT DEVINFO.CLASS%TYPE := 100; -- ISN V_CLASSOISN CONSTANT DEVINFO.CLASS%TYPE := 1000; -- Replaced ISN

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

BEGIN TOOL_DO_LOG(TO_CHAR(P_DEV) || P_TYP || TO_CHAR(P_CLASS) || P_FIELD || P_FLAG || P_ISN || P_RET || P_MSG || P_NOLINK, 'DEVIL', P_RET, P_MSG); IF P_RET = 0 THEN RAISE EXERROR; END IF; V_ISN := UPPER(P_ISN); V_SPNAME := '(LINK_SN_GEN)';

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

IF NVL(P_NOLINK, '?') <> '?' THEN SELECT ROUTE INTO V_VROUTE FROM MO_D WHERE ISN = UPPER(V_ISN); GET_DEVSTEP(V_VROUTE, P_DEV, V_STEP); SELECT * INTO V_ROUTE_STEP FROM ROUTE_STEP WHERE ROUTE = V_VROUTE AND STEP = V_STEP; IF INSTR(NVL(V_ROUTE_STEP.NOLINK, '?'), P_NOLINK) <> 0 THEN -- do not link SN RAISE EXOK; END IF; END IF;

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

SELECT * INTO V_DEV FROM DEVICE WHERE DEVICE = P_DEV; SELECT INFO INTO V_OP FROM DEVINFO WHERE DEVICE = P_DEV AND CLASS = V_CLASSOP; V_TZ := GET_TZ(2);

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

BEGIN SELECT COUNT(P_ISN) INTO V_N FROM ISNINFO WHERE ISN = P_ISN; IF V_N = 0 THEN INSERT INTO ISNINFO (ISN) VALUES (P_ISN); END IF; SELECT INFO INTO V_SN FROM DEVINFO WHERE CLASS = P_CLASS AND DEVICE = P_DEV;

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

V_SQLSTMT := 'UPDATE ISNINFO SET ' || P_FIELD || ' = :p_SN, ' || P_FIELD || 'NM = :p_TYPE' || ' WHERE ISN = :p_ISN'; IF P_FIELD <> 'NULL' THEN INSERT INTO LOG_WIP VALUES (SYSDATE, 'SNBSNBNMTEST' || P_ISN || P_FIELD || P_TYP); COMMIT; V_CURHANDLE := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(V_CURHANDLE, V_SQLSTMT, DBMS_SQL.NATIVE); DBMS_SQL.BIND_VARIABLE(V_CURHANDLE, ':p_SN', V_SN); DBMS_SQL.BIND_VARIABLE(V_CURHANDLE, ':p_ISN', V_ISN); DBMS_SQL.BIND_VARIABLE(V_CURHANDLE, ':p_TYPE', P_TYP); V_ROWSPROCESSED := DBMS_SQL.EXECUTE(V_CURHANDLE); DBMS_SQL.CLOSE_CURSOR(V_CURHANDLE); END IF;

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

IF INSTR(P_FLAG, 'R') <> 0 THEN CHK_SNRANGE_ISN(P_TYP, P_ISN, V_SN, 2, P_RET, P_MSG, P_DEV); -- 1: Check 2: Update Quantity END IF; EXCEPTION WHEN OTHERS THEN IF INSTR(P_FLAG, 'E') <> 0 THEN P_MSG := P_TYP || ' BY PASS ERROR!'; RAISE EXERROR; ELSE P_MSG := P_TYP || ' NOT INPUT!'; RAISE EXERROR; END IF; END;

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

IF INSTR(P_FLAG, 'K') <> 0 THEN DEVINFO_INSUPD(P_DEV, C_CLASSSNS, V_SN, P_RET, P_MSG); IF P_RET = 0 THEN RAISE EXERROR; END IF; END IF; P_RET := 1; P_MSG := 'LINK ' || P_TYP || ' OK!';

MES SP/FUN/SQL 书写规范; 名称定义 变量定义 书写格式 异常抛转

實例

EXCEPTION WHEN EXOK THEN P_RET := 1; WHEN EXERROR THEN P_MSG := P_MSG || V_SPNAME; P_RET := 0; WHEN OTHERS THEN P_MSG := SQLERRM || V_SPNAME; P_RET := 0; END;

本文来源:https://www.bwwdw.com/article/15cj.html

Top