问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle的存储过程、触发器怎么描述?

发布网友 发布时间:2022-04-07 23:49

我来回答

2个回答

懂视网 时间:2022-04-08 04:10


  • create or replace procedure add_food_pro (name in varchar,price in number,description in varchar)
    as 
    begin
    insert into food (f_name,f_price,description)values(name,price,description);
    commit;
    end;
    --下面的代码是调用存储过程
    begin
    add_food_pro(‘糖醋鱼‘,12,‘美味‘);
    end;
  • 创建一个带有输出参数的存储过程,以a+b=c为例

    create or replace procedure add_num_pro (a in int,b in int,c out int)
    as 
    begin
    c:=a+b;
    end;
    --接下来调用存储过程
    declare
    c int;
    begin 
    add_num_pro(10,20,c);
    dbms_output.put_line(c);
    end;
    --注意最后的dbms_output.put_line();
    --如果想要看到结果,需要在打开控制台,set serveroutput on

    oracle数据库中游标的使用

    declare
      cursor c is select *from employees;
      hang employees%rowtype;
    begin
    --打开游标
    open c;
    loop
      fetch c into hang;
      dbms_output.put_line(‘该员工的姓名是‘||hang.first_name||‘,工资是‘||hang.salary);
      exit when c%notfound;
    end loop;
    --关闭游标
    if c%isopen then close c;
    end if;
    end;

    创建一个函数

    --创建一个函数,可以去掉字符串的空格
    create or replace function noblank1( str varchar)
    return varchar
    is
    begin
    return replace(str,‘ ‘,‘‘);
    end;
    --调用函数
    select noblank1(‘  dfa d s a ‘) from dual;

    创建一个触发器

    --创建一个触发器
    create or replace trigger stu_update_tri
    before update on student
    for each row
    begin
    dbms_output.put_line(‘某条记录已经更新,原来的数据是‘||:old.age||‘新的数据是‘||:new.age);
    end;
    --触发触发器
    update student set age=21;


    本文出自 “Java大白的战地” 博客,请务必保留此出处http://8023java.blog.51cto.com/10117207/1669102

    Oracle数据库PL/SQL存储过程游标触发器

    标签:oracle 存储过程 游标 触发器

    热心网友 时间:2022-04-08 01:18

    1:什么叫存储过程?
    在oracle中,可以在数据库中定义子程序,这种程序块叫存储过程(procere),它存放在数据字典中,可以在不同用户和应用程序*享,并可以实现程序的优化和重用。

    2:存储过程的优点?
     过程运行在服务器端,执行速度快
     过程执行一次后代码就驻留在高速缓存中,在以后的操作中,直接调用缓存数据。
     确保数据库的安全性,可以不授权用户直接访问应用程序中的一些表,而是授权用户执行访问数据库的过程。
     自动完成需要预先执行的任务,过程可以在系统启动时自动运行。、

    3:存储过程的创建和执行
    用户存储过程只能定义在当前数据库中,可以使用sql语句或OEM创建。
    默认情况下,用户创建的存储过程归登录数据库的用户所拥有,DBA可以把许可授权给其他用户。
    Sql命令创建存储过程
    CREATE procere 过程名
    【(parameter parameter_mode date_type,….n)】
    IS| AS
    BEGIN
    SQL_STATEMENT
    END 过程名
    其中
    Parameter表示过程的参数。
    parameter_mode:参数的类型,过程参数和函数参数一样,有三种类型IN,OUT,IN OUT
    IN 表示参数是输入给过程的。
    OUT表示采纳数载过程中被赋值,可以传给过程的外部。
    IN OUT表示可以传内,可以传外。

    调用存储过程
    直接输入存储过程的名字可以执行一个已经定义的存储过程。

    存储过程的编辑修改
    修改存储过程虽然可以和修改视图一样,用ALTER procere,但是他是用来重新编译和验证用的,如果要修改过程定义,建议还是用create or replace。

    存储过程的删除
    当某个过程不再需要的时候,应该将其从内存中删除,以释放它占用的资源。
    Drop procere 存储过程名。
    Drop procere update_info.

    触发器
    触发器(trigger)是一些过程,与表联系紧密,用于保护表中的数据,当一个基表被修改时,触发器自动就会执行。例如出入其可以实现多个表间数据的一致性和完整性。
    一般情况下,对表数据的操作有增删查改,维护数据的触发器也可以分为多种,每张基表最多可以建立12个触发器。
    1:Before insert 2:before insert fo each row; 3:after inert
    4:after insert for each row 5:before update 6:before update for each row
    7:after update 8:after update for each row; 9:before delete;
    10:before delete for each row 11:after delete 12:after delete for each row.

    利用sql语句创建触发器
    语法规则
    Create or replace trigger 触发器名
    {before| after| instead of}
    {delete 【or insert】【or update】【of column ….n 】}
    On 表名|视图名
    【for each row 】[]where condition]]
    Sql_statement[,,,n]

    参数说明
    Instead of :指定在创建替代触发器。
    Of column 指定在哪些列上进行触发。。。
    创建触发器的*
    1:触发器中有效的语句可以包括DML语句,但是不能包括DDL,rollback,commit
    ,savepoint都不适用。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    蓝靛果忍冬地理分布 盆栽种植蓝靛果注意事项 中国藏书印欣赏 藏书印一般刻什么字 ...具备拆迁资格的,开发商签订的拆迁安置房,补偿协议有效吗? 网络工程师要考哪些科目 初级网络工程师考什么 我24岁了还能长高吗,我现在看来是个娃娃脸,好多人都以为我在读高中... 在TP-LINK 54M的路由器上的复位键按了10秒 有wifi 电脑没有无线网卡 怎么让电脑通过数据线连接手机上网 无患子的果肉能干啥 无患子可以护肤吗? 资慕无患子修护洗发液有多少无患子含量? 在没有洗衣粉的古代,古人们会用什么来洗衣服? 这是什么?绿色的树上掉下来的,可以洗衣服 果实可用来洗头洗衣服的树叫什么树? 家里空调开着外出2小时要关掉呵? 请问是什么树上的果子? 什么果子傲水洗头? 空调开启三小时后关闭 短暂外出不关空调,以多长时间为宜 冬天出门半小时有必要关空调吗 请问这种能用来洗衣服的果实是什么? 我家有一个两批的空调,开机三小时之后,中途要休息两小时我事后继续开机还是关机省电,谢谢 家里没有人可以不关空调吗?如果家里仅仅3个小时以内没有人,可以不关空调吗? 能洗衣服的植物果子叫什么 出门一小时,空调需要关闭么 绿萝今天刚换盆浇水了没一事吧 绿萝刚移植进盆能浇水吗 空调现在开着,出门两个小时是关还是开着划算? 无患子洗衣球 教师资格证普通话成绩要多少分及格 华为play3怎么样打开空调? 荣耀play5可以开空调吗? oppo系统分身怎么关闭 opporeno5系统分身怎么关闭 华为荣耀Play3? 怎么能让电脑自动联网 电脑重新联网怎么设置 为什么总是你的口红涂不好?学会哪几招,再也不做手残党? 涂在嘴上的口红不容易擦掉怎么办 口红太干很难涂,怎么办?先涂了唇膏也还是不行! 脸上涂口红擦不掉怎么办 吃饭的时候不擦掉口红,长期下来会对身体造成哪些影响? 最近看了很多医疗险,不知道哪家好?众安的可以吗? 百万医疗险哪家好?有没有买过的人说一下? 王者荣耀女英雄台词有哪些? 《王者》女英雄台词有哪些? 那些保险公司的医疗险比较好,友邦怎么样? 《王者荣耀》王昭君台词有哪些?