程序SQL
树图思维导图提供 程序SQL 在线思维导图免费制作,点击“编辑”按钮,可对 程序SQL 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4541193a0800c3fcc32a31cdbc1de4ac
程序SQL思维导图模板大纲
存储
传值
IN
可以直接传值,也可以通过变量传值 , 不能被赋值,使用传入进来的值/变量
OUT
只能通过变量将值传入,可以被赋值,使用赋值后的值,不管传进来的变量的值
IN OUT
只能通过变量将值传入,可以被赋值,可以使用传进来的变量的值,可以使用赋值后的值
IF 判断
条件判断 IF ELSE IF 条件1 THEN 执行的逻辑1; ELSIF 条件2 THEN --条件1不满足的时候,会先判断是否满足条件2 执行的逻辑2; ELSE ---条件1 和条件2 都不满足 执行的逻辑3; END IF; ---结束 IF ELSE 条件判断
循环
----FOR........LOOP 循环 FOR 循环变量 IN 循环下限..循环上限 LOOP --循环变量可以用任意的字母或者单词 --循环体(要重复执行的逻辑) 每次累计—+1 ----END LOOP;
---LOOP循环: --语法结构 DECLARE --声明 BEGIN LOOP --循环体(重复要执行的逻辑) /*EXIT WHEN 跳出该循环的条件;*/ IF 跳出该循环的条件 THEN EXIT; --强制终止循环 END IF; END LOOP;--不会+1 END;
---WHILE 循环 --语法结构 DECLARE BEGIN WHILE 进入循环的条件 LOOP --循环体(重复要执行的逻辑) END LOOP;--不会自增+1 END;
调用
变量
变量类型
%TYPE
%ROWTYPE:引用数据库中的一行(所有字段)作为数据类型
%TYPE:引用数据库中的某张表的某列的数据类型或某个变量的数据类型
IF 判断
条件判断 IF ELSE IF 条件1 THEN 执行的逻辑1; ELSIF 条件2 THEN --条件1不满足的时候,会先判断是否满足条件2 执行的逻辑2; ELSE ---条件1 和条件2 都不满足 执行的逻辑3; END IF; ---结束 IF ELSE 条件判断
循环
----FOR........LOOP 循环 FOR 循环变量 IN 循环下限..循环上限 LOOP --循环变量可以用任意的字母或者单词 --循环体(要重复执行的逻辑) 每次累计—+1 ----END LOOP;
---LOOP循环: --语法结构 DECLARE --声明 BEGIN LOOP --循环体(重复要执行的逻辑) /*EXIT WHEN 跳出该循环的条件;*/ IF 跳出该循环的条件 THEN EXIT; --强制终止循环 END IF; END LOOP;--不会+1 END;
---WHILE 循环 --语法结构 DECLARE BEGIN WHILE 进入循环的条件 LOOP --循环体(重复要执行的逻辑) END LOOP;--不会自增+1 END;
源表
目标表
创建存储过程,将数据同步至拉链表中,且状态和结束时间要随之更改
创建源表,如果有可省略
创建目标表
创建日志表
CREATE TABLE LOG_TABLE ( LOG_ID NUMBER --日志ID ,PROCEDURE_NAME VARCHAR2(50) --记录的程序名称 第6的(加工)存过名称 ,ACTION VARCHAR2(200)--记录的动作 开始加工数据了 或者 加工完成了 ,ACTION_DATE DATE --程序的执行到这里的时间点 sysdate ,PARAMETER1 VARCHAR2(200)--参数1 第6的(加工)存过参数 入参 ,PARAMETER2 VARCHAR2(200)--参数2 ,STATUS VARCHAR2(50)--执行状态 成功 还是失败 ,ERR_MSG VARCHAR2(500)--报错信息 --sqlerrm );
创建日志表中的序列
CREATE SEQUENCE LOG_SEQUENCE START WITH 1 ---从1开始 INCREMENT BY 1 ---每次增长 1 MAXVALUE 100 ---最大值 MINVALUE 1 --最小值 CYCLE --循环,当生成最大值的序列之后,是否要回过头来从1开始生成 CACHE 5---提前生成5个序列值放在缓存区 ; --1 2 3 4 5
向日志表中创建存过
对数据进行处理
调用日志表存过开始加工数据
开始加工数据
完成加工数据
数据异常处理
包头 PACKAGE
CREATE OR REPLACE PACKAGE 包名 IS END 包名;
包尾 PACKAGE BODY
CREATE OR REPLACE PACKAGE BODY 包名 IS END 包名;
WITH 临时表结果集名称 AS ( 查询结果集 ) SELECT * FROM 临时表结果集名称;
循环就是重复的执行 LOOP 到 END LOOP 之间的代码思维导图模板大纲
CREATE OR REPLACE FUNCTION / PROCEDURE函数名(参数1 IN 数据类型,参数2 数据类型……)--只有类型,没有长度 IN RETURN 返回的数据类型 ---返回的如果是 VARCHAR2 类型,也不能给长度 一个结果 IS ---IS 或者 AS 随便写一个都可以 声明变量 ---声明变量的时候记得给长度 BEGIN 函数的具体逻辑; RETURN 声明变量 ;--里面必须要有一个RETURN子句 ---异常处理 EXCEPTION WHEN OTHERS THEN --DBMS_OUTPUT.put_line(SQLERRM); --将报错信息打印 END 函数名; 思维导图模板大纲