Oracle

前端之家收集整理的这篇文章主要介绍了Oracle前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
 第8章 函数和过程
8.4、过程(2019-06-15)
1、存储过程向两张表中添加数据-- 第一张表是avator表 CREATE TABLE avatar( avatar_id NUMBER GENERATED AS IDENTITY CONSTRAINT avatar_kp PRIMARY KEY,--主键约束 avatar_name VARCHAR2(30) ); -- 第二张表是episode表 CREATE TABLE episode( episode_id NUMBER GENERATED AS IDENTITY CONSTRAINT episode_pk PRIMARY KEY,avatar_id NUMBER CONSTRAINT episode_nnl NOT NULL,--NOT NULL约束 episode_name VARCHAR2(30),CONSTRAINT episode_fkl FOREIGN KEY(avatar_id) REFERENCES avatar(avatar_id)--外键约束 ); --adding_contact过程显示了如何使用按值传递过程跨单个事务作用域管理多个DML语句: CREATE OR REPLACE PROCEDURE adding_avatar(pv_avatar_name VARCHAR2,pv_episode_name VARCHAR2) IS lv_avatar_id NUMBER; BEGIN SAVEPOINT all_or_none;--事务开始点 INSERT INTO avatar(avatar_name)VALUES(pv_avatar_name)RETURNING avatar_id INTO lv_avatar_id;--RETURNING INTO子句将标识列的值返回给局部变量 INSERT INTO episode(avatar_id,episode_name)VALUES(lv_avatar_id,pv_episode_name);--使用lv_avatar_id局部变量作为外键值 COMMIT;--提交 EXCEPTION--异常 WHEN OTHERS THEN ROLLBACK TO all_or_none;--回滚可能已经发生的事务 END; / --匿名块程序测试过程 BEGIN adding_avatar(‘Airbender‘,‘Episode 1‘); END; /

猜你在找的Oracle相关文章