• Oracle学习--->8、PL/SQL子程序进阶


    1、在SQL中调用子程序

       编写的PL/SQL函数可以像Oracle内置函数一样调用,需要遵循一定的规则:

    • 所有函数必须是IN模式,OUT和IN OUT模式参数是不能被SQL语句使用
    • 函数参数的数据类型和RETURN子句的返回类型必须能被Oracle数据库识别,这是因为PL/SQL兼容所有的Oracle数据类型
    • PL/SQL扩充了自己的类型,比如BOOLEAN/INTEGER/记录/集合、程序员自定义
    • 函数必须被存储在数据库中,在客户端PL/SQL环境中定义的PL/SQL函数是不能被SQL调用到的
    • 自定义函数不能修改数据库表,不能执行DDL语句,比如CREATE TABLE/DROP INDEX
    • 自定义函数不能执行INSERT/DELETE/MERGE/UPDATE
    • 自定义函数不能使用COMMIT/ROLLBACK
    自定义可以被调用的子程序
    CREATE
    OR REPLACE FUNCTION getDepartment ( p_empNo EMPLOYEER.EMPLOYEER_ID%TYPE) RETURN VARCHAR2 AS v_departName EMP_DEPARTMENT.DEPARTMENT_NAME%TYPE; BEGIN SELECT DEPARTMENT_NAME INTO v_departName FROM EMPLOYEER EMP, EMP_DEPARTMENT PAR WHERE EMP.DEPARTMENT_ID = PAR.DEPARTMENT_ID AND EMP.EMPLOYEER_ID = p_empNo; RETURN v_departName; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN NULL; END;
    直接调用自定义子程序(getDepartment)
    SELECT employeer_id 员工工号, getDepartment (employeer_id) 员工部门 FROM EMPLOYEER;

     2、嵌套子程序

    3、子程序的向前声明

    4、重载子程序

    5、子程序自治事务

    6、递归调用子程序

    7、理解子程序依赖性

    8、子程序权限管理

  • 相关阅读:
    指针,数组,字符串的区别(高质量程序设计指南C++/C语言第7章)
    bitset初始化问题
    书籍
    编译器的工作过程
    C++函数传递指向指针的指针的应用
    程序员面试金典--二叉树的下一个结点
    程序员面试金典--对称的二叉树
    程序员面试金典--按之字形顺序打印二叉树
    程序员面试金典--阶乘尾零
    程序员面试金典--矩阵元素查找
  • 原文地址:https://www.cnblogs.com/LiGengMing/p/6096471.html
Copyright © 2020-2023  润新知