oracle 存储过程
发布网友
发布时间:2022-04-22 02:58
我来回答
共2个回答
热心网友
时间:2022-04-07 19:46
create or replace procere sp_add_emp2( --创建名为sp_add_emp2存储过程
v_empno emp.empno%type, --------- 传入存储过程中的参数
v_ename emp.ename%type,
v_deptno dept.deptno%type,
v_dname dept.dname%type,
num out number ----------存储过程执行完毕后返回的值
)as
num1 number; ------自定义变量
num2 number;
begin
--查询dept表中的数据总共有多少行,赋值给num1,
--条件是字段deptno等于v_deptno(传进来的参数)
select count(*) into num1 from dept where deptno=v_deptno;
if(num1=0) then --如果没数据
--则给dept表的deptno 和dname列插入一条数据,值为v_deptno,v_dname
insert into dept(deptno,dname) values(v_deptno,v_dname);
end if; --If语句结束语
---同上。
select count(*) into num2 from emp where empno=v_empno;
if(num2=0)then
insert into emp(empno,ename,deptno) values(v_empno,v_ename,v_deptno);
else --如果查询到有数据则提示错误信息,员工ID重复,不插入数据
raise_application_error(-202021,'员工id 重复!!!');
end if;
num:=num1; --定义的输出参数等于num1。
commit; --结束存储过程。
热心网友
时间:2022-04-07 21:04
create PROCEDURE getNewData
AS
p_NowID number:=0;
BEGIN
--第一张表
begin
select ID into p_NowID from road where status!=1 and rownum=1;
exception when no_data_found then
select 0 into p_NowID from al;
end;
update road set status=1 where ID=p_NowID;
select *,'insert' dataexchangeoperatetype from road where ID=p_NowID;
--第二张表
begin
select ID into p_NowID from TUser where status!=1 and rownum=1;
exception when no_data_found then
select 0 into p_NowID from al;
end;
update TUser set status=1 where ID=p_NowID;
select *, 'insert' dataexchangeoperatetype from TUser where ID=p_NowID;
END;