zoukankan      html  css  js  c++  java
  • oracle夜未眠之二视图、函数、存储过程、触发器四连发

    1、创建视图

    CREATE  OR replace VIEW my_view(id,stuname,stupassword)) AS SELECT s.id,s.stuame,item.stupassword FROM stu s,stu_item item WHERE item.fid=stu.id;

    2、使用视图

    SELECT *  FROM  my_view WHERE stuname='testname';

    3、查看视图创建语句

    SELECT TEST FROM my_view


    4、游标的创建和使用

    DECLARE 
    CURSOR my_cur IS SELECT * FROM stu
    stus stu%ROWTYPE;
    cunt NUMBER;

    BEGIN
    IF my_cur%ISOPEN THEN
    NULL;
    ELSE
    OPEN my_cur;
    END IF;

    FOR stus IN my_cur LOOP
    cunt := mu_cur%ROWCOUNT;
    dbms_output.put_line(stus.stuname);
    END LOOP

    END;

    5、函数的创建和使用

    CREATE OR REPLACE FUNCTION my_fun(sname stu.stuname%Type) RETURN NUMBER  AS 

    re NUMBER;
    BEGIN
    SELECT COUNT(*) INTO re FROM stu WHERE stu.stuname = 'testname';
    RETURN re;
    END;

    SELECT my_fun('testname') FROM dual

    6、存储过程的创建和使用

    CREATE OR REPLACE PROCEDURE my_pro(sname stu.stuname) AS 

    cunt NUMBER;

    BEGIN
    SELECT COUNT(*) INTO cunt FROM stu s WHERE s.stuname=sname;
    IF cunt = 0 THEN
    INSERT INTO stu(stuname) VALUES (sname);
    ELSE
    NULL;
    END IF;
    END;

    oracle中调用存储过程,如果是不带参数的可以将上面的格式as 改成is ,调用也可以直接使用call my_pro();

    DECLARE 
    sname stu.stuname%TYPE;
    BEGIN
    sname :='testname';
    my_pro(sname);
    END;

    7、触发器的创建和使用

    CREATE  OR REPLACE TRIGGER my_tri_stu
    BEFORE INSERT OR UPDATE OR DELETE ON stu FOR EACH ROW
    DECLARE cunt NUMBER;
    BEGIN
    SELECT COUNT(*) INTO cunt FROM stu WHERE stu.stuname='testname';
    IF cunt= 0 THEN
    INSERT INTO stu(stuname) VALUES ('test');
    ELSIF
    DELETE FROM stu WHERE stuname='testname' ;
    END IF;

    CASE
    WHEN INSERT THEN
    dbms_output.put_line('插入');
    WHEN UPDATE THEN
    dbms_output.put_line('更新');
    WHEN DELETE THEN
    dbms_output.put_line('删除');
    END CASE
    END;







     

  • 相关阅读:
    linux如何查看所有的用户和组信息(转载)
    linux下快速查找文件(转载)
    openLDAP学习笔记
    IDEA无法新建GUI Form文件
    Java开发环境配置时的dt.jar与tools.jar是什么(转载)
    windows bat批处理基础命令学习教程(转载)
    23. Merge k Sorted Lists
    一些词
    docker
    指定gpu
  • 原文地址:https://www.cnblogs.com/fangj/p/2236287.html
Copyright © 2011-2022 走看看