当前位置:网站首页>存储过程试炼2--建立Test表测试不同类型的存储过程
存储过程试炼2--建立Test表测试不同类型的存储过程
2022-07-27 05:11:00 【神芷迦蓝寺】
上一篇记录了存储过程的基本知识点https://mochou.blog.csdn.net/article/details/116503996,这一篇通过建立测试表进行各个不同类型的存储过程试炼
-- *************建立测试表
CREATE TABLE szsz.produre_test_table(
ID1 INTEGER PRIMARY KEY,
NAME1 VARCHAR2(50),
num1 INTEGER,
bz VARCHAR2(50)
);
SELECT * FROM produre_test_table
-- **************无参存储过程
CREATE OR REPLACE PROCEDURE testMyProcedure AS
n_num NUMBER(10);
v_car VARCHAR2(50);
BEGIN
SELECT COUNT(*) INTO n_num FROM products;
v_car := 'Geely';
DBMS_OUTPUT.put_line(v_car || '的数量是' || n_num);
INSERT INTO produre_test_table VALUES(1,v_car,n_num,'T');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
INSERT INTO produre_test_table VALUES(101,'testMyProcedure',0,'F');
RAISE;
END;
-- 运行存储过程 EXECUTE szsz.testMyProcedure;
BEGIN
szsz.testMyProcedure;
END;
-- **************有参存储过程
create or replace procedure test_procedure1(v_name in VARCHAR2,d_date OUT DATE) as
v_name1 varchar2(10);
n_num NUMBER(32);
begin
v_name1 := v_name;
SELECT COUNT(*) INTO n_num FROM products;
IF n_num > 1 THEN
d_date :=SYSDATE;
ELSIF N_NUM = 0 THEN
d_date := '1970-01-01 00:00:00';
END IF;
dbms_output.put_line('名字:' || v_name1||', 年龄:' || n_num||', 时间:' || d_date);
INSERT INTO produre_test_table VALUES(3,V_NAME1,N_NUM,'F');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
INSERT INTO produre_test_table VALUES(102,'test_procedure1',0,'F');
RAISE ;
end;
-- 参数中的in 代表输入
-- || 连接字符串
-- 参数不必写具体类型大小
-- 执行
DECLARE
test1 DATE;
begin
test_procedure1('zs',test1);
end;
-- **************存储过程-游标
CREATE OR REPLACE PROCEDURE cur_procedure(id1 NUMBER) AS
v_name VARCHAR2(50);
n_NUM NUMBER(10);
CURSOR cur IS SELECT ID1,NAME1,num1 FROM produre_test_table;
BEGIN
SELECT COUNT(1) INTO n_Num FROM produre_test_table;
IF n_num > 1 THEN
FOR RES IN cur LOOP
dbms_output.put_line('名字:' || RES.NAME1 ||', 年龄:' || RES.NUM1||' !!!');
UPDATE produre_test_table A SET A.ID1 = RES.ID1+1000;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
INSERT INTO produre_test_table VALUES(103,'cur_procedure',0,'F');
RAISE ;
end;
-- 执行
BEGIN
cur_procedure(100);
END;
边栏推荐
猜你喜欢

「PHP基础知识」定界符的使用

First knowledge of C language - why does every C program have a main function

Getaverse,走向Web3的远方桥梁

Configure the route and go to the login home page to send the request
![[NPUCTF2020]ReadlezPHP 1](/img/d9/590446b45f917be3f077a9ea739c20.png)
[NPUCTF2020]ReadlezPHP 1

SeekTiger即将上线STI聚变Mining功能,获取OKA通证

编辑删除用户

你连简单的功能测试都做不好,你拿什么来跟我谈涨薪?

期货开户之前要先谈好手续费

SeekTiger的Okaleido有大动作,生态通证STI会借此爆发?
随机推荐
每周学习总结
「PHP基础知识」PHP中实现数学运算
Okaleido上线聚变Mining模式,OKA通证当下产出的唯一方式
ES6中new一个箭头函数会怎样
Ubuntu:安装PostgreSQL
Construction of layout and display of weather forecast
「PHP基础知识」定界符的使用
「PHP基础知识」整型数据的使用
权限展示-左侧列表动态化
用户页面管理
Maintain login and route jump
Permission configuration, component value transfer
dirsearch[目录扫描工具]
刷脸支付用户主要优势是智能化程度高
Package JWT
广(宽)度优先搜索
Plato Farm有望通过Elephant Swap,进一步向外拓展生态
信息学奥赛一本通1176题——谁考了第k名
一本通1329 细胞(广度优先搜索)
[BJDCTF2020]EasySearch 1