• 过程&&函数


    过程

    • 用于在数据库中完成特定的操作或者任务(如插入、删除)
    • 程序头部声明用procedure
    • 程序头部声明时不需要描述返回类型
    • 以编译后的形式存放在数据库中
    • 可以使用in/out/in out三种模式的参数
    • 可以作为一个独立的PL/SQL语句来执行
    • 可以通过out/in out返回零个或者多个值
    • SQL语句(DML或SELECT)中不可调用存储过程
    • 示例一
    DROP PROCEDURE IF EXISTS  selectT;
    CREATE PROCEDURE selectT(in id1 VARCHAR(10))
    BEGIN
      SELECT * from t_test where USER_ID = id1;
    end;
    
    call selectT(1);
    
    • 示例二
    DROP PROCEDURE IF EXISTS  CustomerInsert;
    create procedure CustomerInsert (
    in A int,
    in B VARCHAR(20)
    )
    Begin 
         insert into t_test(USER_ID,USER_NAME)  values(A,B);
    End
    
    call CustomerInsert(21,'测试')
    

    函数

    • 用于特定的数据(如选择)
    • 程序头部声明用function
    • 程序头部声明要描述返回类型,而且PL/SQL块中至少要包括一个有效的return语句
    • 以编译后的形式存放在数据库中
    • 可以使用in/out/in out三种模式的参数
    • 不能独立执行,必须作为表达式的一部分调用
    • 通过return语句返回一个值,且该值要与申明部分一致,也可以是通过out类型的参数带出的变量
    • SQL语句(DML或SELECT)中可以调用函数

    触发器
    触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句

    • insert
    create trigger tri_insert
    on student
    for insert
    as
    declare @student_idchar(10)
    select @student_id=s.student_id from students
    inner join insertedion s.student_id=i.student_id
    if @student_id='0000000001'
    begin
    raiserror('不能插入1的学号!',16,8)
    rollbacktran
    end
    go
    
    • update
    create trigger tri_update
    on student
    for update
    as
    if update(student_id)
    begin
    raiserror('学号不能修改!',16,8)
    rollbacktran
    end
    go
    
    • delete
    create trigger tri_delete
    on student
    for delete
    as
    declare @student_idvarchar(10)
    select @student_id=student_id from deleted
    if @student_id='admin'
    begin
    raiserror('错误',16,8)
    rollbacktran
    end
    
  • 相关阅读:
    对于.net config文件中加密使用
    删除windows不想要的服务
    ora12514: tns: 监听程序当前无法识别连接描述符中请求的服务
    读《.NET设计规范》笔记
    创建服务总结
    加载XML文档
    XMLHttpRequest对象的使用
    ReportView控件的使用
    C#代码的编译过程
    Qt vs设置可执行程序图标
  • 原文地址:https://www.cnblogs.com/pengdt/p/13062304.html
Copyright © 2020-2023  润新知