数据库中事务、存储过程、函数、同义词的使用
来源:互联网 发布:c语言 设备端接入 编辑:程序博客网 时间:2024/05/29 18:03
事务
事务(Transaction)是作为单个逻辑工作单位执行的一系列操作
多个操作作为一个整体向系统提交,要么都执行、要么都不执行
事务是一个不可分割的工作逻辑单元
事务的特性
事务必须具备以下四个属性,简称ACID属性
原子性(Atomicity):事务是一个完整的操作,事务的各步操作是不可分的(原子性);
要么都执行,要么都不执行
一致性(Consistency):当事务完成时,数据必须处于一致状态
隔离性(Isolation):并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务
永久性(Durability):事务完成后,它对数据库的修改被永久保持
存储过程
预先存储好的SQL程序
保存在Oracle中
通过名称和参数执行
可带参数,也可返回结果
可包含数据操纵语句、变量、逻辑控制语句等
优点:
执行速度更快
减少网络流通量
创建存储过程:
存储过程之创建无参存储过程
--无参的存储过程create or replace PROCEDURE hello_proasbegin dbms_output.put_line('Hello Procedure');end;测试代码:
set serveroutput on;begin hello_pro;end;存储过程之创建有参存储过程
--1.参数的数据类型不能加长度--2.不加IN或out 默认为IN,即输入参数--3.调用带有参数的存储过程必须要传参create or replace PROCEDURE with_param_pro(str in VARCHAR2)asbegin dbms_output.put_line( str);end;存储过程相关实例1:
--在emp表空间中创建存储过程,接收编号,参数类型与emp表中相同,执行存储过程能够打印姓名及工资create or replace procedure emp_print_pro(eno emp.empno%type)as emp_ emp%rowtype;begin select * into emp_ from emp where empno=eno; dbms_output.put_line('员工的姓名是'||emp_.ename||',基本工资是'||emp_.sal);end;实例2:增加一个汽车的类型,数量、价格、生产年份
--存储过程方法create or replace PROCEDURE add_car(car_type VARCHAR2,car_num VARCHAR2,car_price NUMBER,car_year VARCHAR2)asbegin insert into car values(car_seq.nextval,car_type,car_num,car_price,car_year); commit; dbms_output.put_line('数据存储成功');EXCEPTION when OTHERS then dbms_output.put_line('数据存储失败');END ;测试代码:
set serveroutput on;exec add_car('福田','55',12000,'1995年')函数
函数相关应用实例1:计算两数之和
--计算两数之和create or replace FUNCTION num_func(num1 in number,num2 in NUMBER)RETURN numberas BEGIN RETURN num1+ num2;exception when others then dbms_output.put_line('计算失败');end;测试代码:
select num_func(12,13) from dual;应用实例2:将存储过程中汽车的实例用函数方法
--函数方法create or replace function car_add_func(car car%rowtype)return NUMBERasBEGIN INSERT Into car values(car_seq.nextval,car.ctype,car.num,car.price,car.year); COMMIT; return 1;EXCEPTION when OTHERS then rollback; dbms_output.put_line('添加失败'); return 0;END;测试代码:
declare car_ car%rowtype;begin car_.ctype:='JEEP自由光'; car_.num:='2.5T'; car_.price:=250000.00; car_.year:='25-9月 17'; dbms_output.put_line('影响行数是'||car_add_func(car_));end;同义词
--设置同义词可以把不属于本账号的表空间下的表共享,可以在其他表空间下进行操作--公共同义词可以在任意表空间下操作--同义词创建create SYNONYM access_ for sys.access$--删除drop SYNONYM access_--查询select * from access_--创建公共同义词create public SYNONYM access_ for sys.access$
阅读全文
0 0
- 数据库中事务、存储过程、函数、同义词的使用
- 存储过程中事务的使用
- 存储过程中使用事务的方法
- 数据库存储过程,事务 jfinal中调用存储过程,事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 数据库中的事务、存储过程和触发器的简单使用
- iOS -如何让你写的代码更规范
- poj2226
- 翻转单词顺序列java实现
- Hibernate原理及工作流程
- chmod g+s 、chmod o+t 、chmod u+s详细说明
- 数据库中事务、存储过程、函数、同义词的使用
- javascript线程解释(setTimeout,setInterval你不知道的事)
- [leetcode] 257. Binary Tree Paths
- 满二叉树思想的应用------小猴子下落
- fstab文件详解
- Read Number in Chinese (25)
- linux下文件权限
- HDFS Ozone整体概述
- Linux不重启识别新添加的磁盘