ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle数据库

2019-03-09 23:43:32  阅读:242  来源: 互联网

标签:begin end 数据库 number replace another Oracle create


1.触发器语法

create [or replace] tigger 触发器名 触发时间 触发事件
on 表名
[for each row]
begin
 pl/sql语句
end

实例:创建自增长字段

create or replace trigger test_id
before insert on another  --before:执行DML等操作之前触发
for each row  --行级触发器
begin 
    select testsq.nextval into :new.epl_id from dual;
end;

2.存储过程语法

CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

实例:

create or replace procedure up_another(v_empid in number)
as
v_large number;
begin
  v_large:=2;
  update another set salary=v_large*salary where epl_id=v_empid;
end up_another;

调用:

begin
  up_another(103);
end up_nother; 

3.创建自增序列

create sequence testsq 
increment by 1
start with 1
maxvalue 7
cycle 
nocache

4.存储函数

--查询某个员工的年收入

create or replace function queryempincome(eno in number)
return number
as
  --月薪和奖金
  psal   emp.sal%type;
  pcomm  emp.comm%type;
begin
  select sal,comm into psal,pcomm from emp where empno=eno;
  --返回年收入
  return psal*12+nvl(pcomm,0);
end;

调用:

declare
  sal_yeats number(9,2);
  begin
    sal_yeats := queryempincome(7369);
    dbms_output.put_line(sal_yeats);
end;

标签:begin,end,数据库,number,replace,another,Oracle,create
来源: https://www.cnblogs.com/liaozili/p/10503716.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有