>데이터 베이스 >Oracle >Oracle의 저장 프로시저의 출력 매개변수는 무엇입니까?

Oracle의 저장 프로시저의 출력 매개변수는 무엇입니까?

WBOY
WBOY원래의
2022-03-07 15:48:565849검색

Oracle에서는 저장 프로시저의 out 매개변수가 출력 모드의 매개변수입니다. 들어오는 값은 서브루틴이 실행된 후 수정될 수 있습니다. 출력 모드 매개변수 최종적으로 호출 시 해당 실제 매개변수 변수에 값이 할당됩니다. 출력 모드 매개변수는 변수를 통해 호출되어야 합니다.

Oracle의 저장 프로시저의 출력 매개변수는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

Oracle의 저장 프로시저의 출력 매개변수는 무엇인가요?

1. 저장 프로시저란 무엇인가요?

Oracle 저장 프로시저는 일부 PL/SQL 문으로 구성된 코드 블록이라고 할 수 있습니다. 이러한 PL/SQL 문 코드는 메서드(단일 테이블 또는 여러 테이블 추가, 삭제, 수정 및 쿼리)와 같은 일부 기능을 구현한 다음 이 코드 블록에 이름을 지정하고 이 함수가 사용될 때 호출하기만 하면 됩니다.

저장 프로시저의 이점:

데이터베이스가 작업을 수행할 때 먼저 컴파일된 다음 실행됩니다. 그러나 저장 프로시저는 컴파일된 코드 블록이므로 실행 효율성이 PL/SQL 문보다 높습니다.

저장 프로시저는 프로그램 및 네트워크에서 상호 작용할 때 많은 수의 PL/SQL 문을 대체할 수 있으므로 네트워크 통신량을 줄이고 통신 속도를 높일 수도 있습니다.

저장 프로시저를 통해 권한이 없는 사용자가 통제 중인 데이터베이스에 간접적으로 접근할 수 있어 데이터 보안이 보장됩니다.

저장 프로시저의 예:

--给指定的员工涨100块钱的工资,并且打印涨前和涨后的薪水
create or replace procedure raiseSalary(eno in number)
as
  --定义变量,保存涨前的薪水
  psal emp.sal%type;
begin
  --得到涨前的薪水
  select sal into psal from emp where empno=eno;
  --涨100
  update emp set sal=sal+100 where empno=eno;
  
  --要不要commit?
  --一般,不在存储过程或者存储函数中提交和回滚
  
  dbms_output.put_line('涨前:'||psal||'   涨后:'||(psal+100));
end;
/

2. out 매개변수는 무엇인가요?

출력 모드의 매개변수는 값을 출력하는 데 사용되며, 들어오는 값은 무시됩니다. 서브루틴 내에서 수정할 수 있습니다. 출력: 서브루틴이 실행된 후 호출 시 출력 모드 매개변수의 최종 값이 해당 0608084050877e0679c826a1323614ac에 할당됩니다. 참고: 출력 모드 매개변수는 변수를 통해 호출되어야 합니다.

out 매개변수 예:

--查询某个员工的姓名 月薪和职位
/*
1. 查询某个员工的所有信息 ---> out参数太多
2. 查询某个部门中所有员工的所有信息 --> 返回集合
*/
create or replace procedure queryempinfo(eno in number,
                                         pename out varchar2,
                                         psal   out number,
                                         pjob   out varchar2)
as
begin
  select ename,sal,empjob into pename,psal,pjob from emp where empno=eno;
end;
/

추천 튜토리얼: "Oracle Video Tutorial"

위 내용은 Oracle의 저장 프로시저의 출력 매개변수는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.