oracle存储过程if结束
1. oracle存储过程IF判断的问题
问题1:当你传入37
时,IF
FLAG>5
已经满足条件了,直接V_VALUE
:=1;,不会继续判断了。然后就调到end
if。可以按f9调试,不信一步步看它的执行过程。
问题2:IF
V_NULL=NULL,不是这样写,是IF
V_NULL
IS
NULL
,就会输出888啦。
2. oracle存储过程中的if then return end if中,如果执行到return,是跳出if循环,还是停止存储过程
使用return是直接跳出存储过程。
3. oracle 存储过程
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; --结束存储过程。
4. oracle 存储过程中if else的应用
if( a==1 && b==1) 这样写:
if a = 1 and b = 1 then
-- 里面写if成立情况的代码
else
-- else情况
end if;
if(a==1 | | b==1) 这样写:
if a = 1 or b = 1 then
-- 里面写if成立情况的代码
else
-- else情况
end if;
5. oracle 存储过程 if语句
&&用and表示,如:
if 1=1 and 2=2 then
...
end;
||用or表示。
!用not表示。
6. oracle存储过程中if条件后的sql没有执行
你把你这两个 dbms输出的语句注释掉试下,你这两个语句后面都有封号,不是代表if语句已经结束了吗
7. 执行oracle存储过程的时候,提示在①那个地方报命令未正确结束
select * from B where city_code =upp; //这句话有什么用?貌似没有用到么
insertintoBvalues((=(=addCode)),------------------①
oracle里面没有这种语法,有两种方式你可以尝试
select xxx into 到变量里。如select xxx into A,然后insert into B values(A);
select xxx from xxx。如:
insert into B
select (select a from A),(select b from A) from al;
8. oracle存储过程IF判断问题
问题1:当你传入37
时,if
flag>5
已经满足条件了,直接v_value
:=1;,不会继续判断了。然后就调到end
if。可以按f9调试,不信一步步看它的执行过程。
问题2:if
v_null=null,不是这样写,是if
v_null
is
null
,就会输出888啦。
9. oracle存储过程中写IF ELES
if 条件 then
语句
elsif 条件 then
语句
else
语句
end if;
10. oracle 存储过程里的if else
ifS_date=4then
p_temp();
elsifS_date!=4then
p_temp2();
endif;