> Java > java지도 시간 > 본문

Oracle 저장 프로시저 및 저장 함수 생성 예제 튜토리얼

零下一度
풀어 주다: 2017-06-25 10:56:47
원래의
1913명이 탐색했습니다.
select * from emp;
-----------------存储过程------------------------
--定义
   create[or replace] procedure 存储过程名称(参数名 [in]/out 数据类型) 
   is/as
   begin
     --逻辑表达式 
   end [存储过程名称];
       
       
--定义存储过程计算年薪,并答应输出
  create or replace procedure proc_salyears(v_no in number)
   is
   sal_years number(9,2);
   begin
     --计算年薪
     select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
     
     --输出
     dbms_output.put_line(sal_years);
   end;
 
--调用存储过程
   方式1:
     call proc_salyears(7788);
   方式2:
     begin
       proc_salyears(7369);
     end;
     
--out参数的存储过程
--计算年薪并返回   
  create or replace procedure proc_salyears(v_no in number,sal_years out number)
   is
   begin
     --计算年薪
     select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
   end;
  --调用存储过程
  declare
   v_sal number(9,2);
  begin
     proc_salyears(7876,v_sal);
     dbms_output.put_line(v_sal);
  end;
-----------------存储函数------------
--定义
  create or replace function 存储函数名(参数名 in/out 数据类型)
    return 数据类型
    is|as
    begin
        return 具体的数据;
    end [存储函数名称];
   
--定义存储函数名计算年薪
  create or replace function fun_salyears(f_no number)
    return number
    is
  sal_years number(9,2);
    begin
    select sal*12+nvl(comm,0) into sal_years from emp where empno=f_no;
        return sal_years;
    end ;
--使用存储函数
  declare
  sal_yeats number(9,2);
  begin
    sal_yeats := fun_salyears(7876);
    dbms_output.put_line(sal_yeats);
  end;
  --可简写
  begin
    dbms_output.put_line(fun_salyears(7369));
  end;

--------存储过程和存储函数的区别--------
存储过程多用于项目之间的数据共享,存储函数多被存储过程调用.
存储函数可以再sql语句中调用,存储过程不能.
로그인 후 복사

 

위 내용은 Oracle 저장 프로시저 및 저장 함수 생성 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿