精华内容
下载资源
问答
  • 存储过程存储函数的区别:是否用return返回值。 存储过程:类似于Java里面void返回类型的方法。目的是完成一系列的数据处理。 存储函数:类似于Java里面非void返回类型的方法。目的是获得函数返回值。 --创建...
  • 存储过程函数的区别 存储过程函数的目的是为了可重复地执行操作数据库的sql语句的集合。 区别可分在写法 和 调用 上。 写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数; 函数的参数...

    存储过程和函数的区别

    存储过程和函数的目的是为了可重复地执行操作数据库的sql语句的集合。


    区别可分在写法调用 上。

    写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数;
    函数的参数列表只有输入参数,并且有return<返回值类型,无长度说明>。

    返回值上:
    存储过程的返回值可以有多个值;
    函数的返回值只有一个值。

    调用方式上
    存储过程的调用方式有:

    • 1)exec<过程名>;
    • 2 ) excute<过程名>;
    • 3 )在PL/SQL语句块中直接调用。

    函数的调用方式有:
    在PL/SQL语句块中直接调用。
    具体分为:
    ------调用FUNCTION add_three_numbers
    ------1.位置表示法调用函数
    BEGIN
    dbms_output.put_line(add_three_numbers(3,4,5));
    END;

    ------2.命名表示法调用函数
    BEGIN
    dbms_output.put_line(add_three_numbers(b=>3,a=>4,c=>5));
    END;

    ------3.混合使用位置表示法和命名表示法调用函数
    BEGIN
    dbms_output.put_line(add_three_numbers(3,a=>4,c=>5));
    END;

    ------4.排除表示法
    BEGIN
    dbms_output.put_line(add_three_numbers(12,c=>5));
    END;

    ------5.sql调用表示法
    SELECT add_three_number(3,a=>4,c=>5) FROM DUAL;

    展开全文
  • 返回值:存储过程无返回值,存储函数通过 RETURN 返回信息;4.目的:存储过程的目的:完成一系列数据处理;存储函数的目的:获取函数返回值;5.6.举例:--求部门的年收入 CREATE OR REPLACE FUNCTION func4 (v_...

    1、创建的关键字不同 :

    过程:PROCEDURE

    函数:FUNCTION


    2.调用方式:



    3.返回值:

    存储过程无返回值,存储函数通过 RETURN 返回信息;


    4.目的:

    存储过程的目的:完成一系列数据处理;

    存储函数的目的:获取函数返回值;


    5.



    6.



    举例:

    --求部门的年收入
    CREATE OR REPLACE FUNCTION func4
    (v_deptno IN NUMBER DEFAULT 10,v_t IN NUMBER)
    RETURN NUMBER
    IS
           v_sumsal NUMBER;
    BEGIN 
           SELECT SUM((sal+nvl(comm,0))*12)
           INTO v_sumsal
           FROM emp
           WHERE deptno = v_deptno;   
           DBMS_OUTPUT.put_line('测试:'||v_t);    
           RETURN v_sumsal;
    EXCEPTION
           WHEN NO_DATA_FOUND THEN
             DBMS_OUTPUT.put_line('没有此部门');
           WHEN OTHERS THEN
             DBMS_OUTPUT.put_line(SQLERRM);
    END;
    --调用
    declare
             v_totalsal number;
    begin
            v_totalsal := func4(v_t=>1);
            dbms_output.put_line(v_totalsal);
    end;
    


    展开全文
  • 存储过程函数

    2019-11-12 00:01:57
    存储过程函数都可带有输入和输出参数,函数必有返回值,均可多次使用 注意:指定的参数不可给定长度 PL/SQL Procedural Language/SQL过程化SQL语言 一、存储过程: 1、不带参数的存储过程 注意书写格式 create or ...

    存储过程、函数都可带有输入和输出参数,函数必有返回值,均可多次使用
    注意:指定的参数不可给定长度
    PL/SQL Procedural Language/SQL过程化SQL语言
    一、存储过程:
    1、不带参数的存储过程 注意书写格式
    create or replace procedure pntime is
    begin
    dbms_output.put_line(sysdate);
    end pntime;
    调用call pntime() 或者exec pntime;
    2、带输入参数的存储过程
    create or replace procedure add_employee
    (eno number, --参数不定义长度
    name varchar2,
    sal number,
    job varchar2 default ‘普通职员’,
    dno number)
    is
    begin
    insert into emp(empno,ename,sal,job,deptno) values(eno,name,sal,job,dno);
    end add_employee;
    调用 call add_employee(7111,‘maozhan’,7900,‘engineer’,10); 简单调用
    3、带输出参数的存储过程 注意参数不可制定长度
    create or replace procedure query_employee
    (eno number, --参数不指定长度
    name out varchar2, --输出参数
    salary out number)
    is
    begin
    select ename,sal into name,salary from emp where empno=eno;
    end query_employee;
    调用 PL\SQL块调用
    declare
    eno number;
    name varchar2(20);
    salary number;
    begin
    eno:=7788; --输入参数
    query_employee(eno,name,salary);
    dbms_output.put_line(name||‘的工资是’||salary); --输出参数
    end;
    4、既输入由输出参数的存储过程 定义变量紧跟is,不适用declare
    create or replace procedure calc (
    num1 in out number,
    num2 in out number)
    is
    v1 number; --临时变量
    v2 number;
    begin
    v1:=num1/num2; --临时变量v1,v2赋值
    v2:=mod(num1,num2); --取余运算
    num1:=v1;
    num2:=v2;
    end calc;
    调用
    declare
    no1 number; 不指定长度
    no2 number;
    begin
    no1:=40;
    no2:=5;
    dbms_output.put_line(no1||’—’||no2);
    calc(no1,no2);
    dbms_output.put_line(no1||’—’||no2);
    end;
    删除 drop procedure calc;

    二、函数 函数头必须包含return子句,函数体必须包含return返回的数据
    1、定义函数
    create or replace function tcount(tablename varchar2)
    return number --不指定长度
    is
    v_rows number; --临时定义变量
    v_sql varchar2(1024):='select count(1) from '||tablename;
    begin
    execute immediate v_sql into v_rows;
    return v_rows;
    exception
    when others then
    dbms_output.put_line(‘您传入的表名不存在,亦出现异常’);
    return -1;
    end;
    2、更复杂函数
    create or replace function fsal(empnumber number) --参数不可指定长度
    return varchar2 --注意这里无分号,指明返回值类型
    is
    salary number;
    employeename varchar2(20); --定义的变量可以指定长度
    begin
    select ename,sal into employeename,salary
    from emp where empno=empnumber;
    if salary>=4000 then
    dbms_output.put_line(‘salary is’||salary||‘name is’||employeename);
    return ‘make good salary’;
    else
    dbms_output.put_line(‘salary is’||salary||‘name is’||employeename);
    return ‘bad’; --必须返回值
    end if;
    end fsal;
    函数调用限制
    可用作select命令中、where和having子句中、orderby和groupby子句中、insert和values子句中
    update命令的set子句中
    sql中的调用函数不包含insertupdate和delete语句,也就是说只能查
    drop function 函数名
    总结
    一般增删改查用存储过程
    调用有区别:函数调用向我们常用的方法调用、存储过程用PLsql块调用
    函数必须返回单个值

    展开全文
  • oracle存储过程函数的区别

    千次阅读 2018-08-15 09:44:45
    存储过程函数的对比   存储过程语法 用create procedure命令建立存储过程存储函数 语法: create [or replace] procedure 过程名(参数列表) as 或 create [or replace] procedure 过程名(参数列表) ...

    存储过程与函数的对比

     

    存储过程语法

    用create procedure命令建立存储过程和存储函数

    语法:

    create [or replace] procedure 过程名(参数列表)

    as

    create [or replace] procedure 过程名(参数列表)

    is

    实例:带参数的存储函数

    create or replace procedure RaiseSalry(eno in number)
    
    as
    
    psal emp.sal%type;
    
    begin
    
    select sal into psal from emp where EMPNO=eno;
    
    update emp set sal = sal +100 where EMPNO=eno;
    
    DBMS_OUTPUT.PUT_LINE('涨工资前的薪水'||psal||'涨工资后的薪水'||(psal+100));
    
    end;

    函数语法

    create [or replace] function 函数名(参数列表)

    return 函数值类型

    as

    create [or replace] function 函数名(参数列表)

    return 函数值类型

    is

    实例:查询某个员工的年收入

    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+pcomm;
    
    end;

     

    展开全文
  • 存储过程存储函数的概述存储过程:理解为java中的void方法,用于处理功能,但无返回值。存储函数:理解为java中非void的方法,不但可以处理功能,还能返回信息。举例:需求(打印出"hello everyone")--...
  • oracle存储过程函数、触发器和包

    千次阅读 2018-05-22 07:52:46
    存储过程的创建带参数的存储过程的使用存储过程的管理函数的创建和使用...存储过程函数的区别与联系触发器1、触发器类型2、创建触发器3、DML触发器4、INSTEAD OF触发器5、系统事件触发器6、DDL触发器7、禁用与启用...
  • 存储过程的调用与删除;例子:--调用无参的存储过程 begin first_proc; end;--调用带有输出参数的存储过程 DECLARE v_avgsalary NUMBER; v_count NUMBER; BEGIN PROC2(10,v_avgsalary,v_count); DBMS_OUTPUT.put...
  • 存储过程存储函数说明2.存储过程2.1创建存储过程2.2调用存储过程3.存储函数3.1创建存储函数 Oracle中存储过程存储函数的使用 1.存储过程存储函数说明 存储在数据库中供所有用户程序调用的子程序叫存储过程、...
  • 一、存储过程函数概述 关于存储过程函数概述,包含一下知识点: 1、PL/SQL块分类 (1)、PL/SQL块:匿名块、命名块 匿名块:不保存在数据库中,没有名称,不可以重复调用 命名块:保存在数据库中,有名称,可以...
  • 存储过程存储函数: 指存储在数据库中供所有用户程序调用的子程序叫存储过程存储函数。创建存储过程 用CREATE PROCEDURE命令建立存储过程存储函数。 语法:create [or replace] PROCEDURE 过程名(参数列表)...
  • Oracle存储过程储存函数 create or replace procedure sayhelloworld as begin dbms_output.put_line('hello world'); end; / 源码: /* begin raisesalary(7839); raisesalary(7566); end; */ cr...
  • 创建存储过程的关键字是: procedure 创建函数的关键字是: function 比较2 存储过程的调用方式: 独立的调用语句,如: begin proc1; end; 函数的调用方式: 以表达式方式调用,如: declare v_result ...
  • oracle加密存储过程函数、包)

    千次阅读 2019-07-10 17:15:45
    oracle提供了一个叫wrap的操作系统命令行工具,用来加密存储过程函数、包等PL/SQL源代码。防止其他用户对商业逻辑的偷窥,帮助保守商业密码。 语法 wrap iname=input_file [oname=output_file] input_file为输入...
  • MSSQL之九 存储过程函数

    千次阅读 2016-05-18 19:31:15
    当你需要在不同时间重复的执行批处理时,可以把批处理保存为存储过程函数的数据库对象。这些数据库包含一个预编译的批处理,它可以不需要再编译而执行很多次。 本章解释如何创建批处理以执行多个SQL语句以及如何在...
  • 数据库的存储过程以及函数的区别
  • --存储过程内创建存储过程函数 ------------------------------------------------------------- CREATE OR REPLACE PROCEDURE cr_ccgchsc(p_num IN VARCHAR2) IS  V_COUNT NUMBER(10); --计数变量  V_SQL ...
  • 存储过程函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程函数是以命名的方式存储于数据库中的。和PL/SQL程序相比,存储过程有很多优点,具体归纳如下: * 存储过程函数以...
  • 存储过程函数目的是为了可重复地执行操作数据库的sql语句的集合。 区别是写法和调用上。 写法上:存储过程的参数列表可以有输入参数,输出参数,可输入输出的参数; 函数的参数列表只有输入参数,并且有返回&...
  • 存储过程存储函数 l存储在数据库中供所有用户程序调用的子程序叫存储过程存储函数。 注意:存储过程存储函数声明变量时,用的是as 而不是declare 存储过程存储函数区别 存储过程不带有返回值,存储...
  • 存储过程的创建:例子:--1:创建输入参数的存储过程 --根据员工号删除指定的员工信息 CREATE OR REPLACE PROCEDURE proc1 (v_empno IN empnew.empno%TYPE) IS BEGIN --根据员工号删除指定的员工信息 DELETE FROM ...
  • 存储过程存储函数 数据库对象 存储在数据库中供所有用户调用的子程序叫做存储过程存储函数--存储过程 打印helloworld /* 调用存储过程的方式 1.exec pro_say_helloworld(); 2begin pro_say_helloworld(); ...
  • 存储过程存储函数

    2018-03-06 19:37:13
    存储过程存储函数区别:一个是类似于java中的void类型,另一个是带有返回值的方法,是否用return返回值例:用存储过程函数实现输出 hello world创建存储过程create or replace procedure first_proc as begin ...
  • 存储过程函数简单来说是sql语句的集合,将数据的处理过程函数话,构成sql语句集合,以此来降低代码处理复杂性,提高访问的速度。 常用于比较复杂的数据库,涉及多个表的数据处理,使用函数或者存储过程来降低复杂...
  • Oracle存储过程函数

    千次阅读 2020-06-03 18:02:43
    --as与is区别:在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别,在视图(VIEW)中只能用AS不能用IS,在游标(CURSOR)中只能用IS不能用AS。 --声明部分 countint number; --执行部分 begin select count(1) into...
  • 命名块:存储过程函数、触发器、包 2:存储过程函数概述 存储过程函数:都是一个子程序,完成一定的功能 存储过程:没有返回值,可以独立调用 函数:必须包含一个返回值,只能作为表达式的一部

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,959
精华内容 73,183
关键字:

存储过程output函数