当前位置:首页 » 存储配置 » oracle存储过程if条件

oracle存储过程if条件

发布时间: 2024-09-03 22:41:02

A. oracle 存储过程中 如果用if语句判断一条查询语句的结果集是否为空

已经经过测试,可以。

create table test1023(id int); --创建测试表 test1023

declare cnt int;
begin
select count(*) into cnt from test1023;
if cnt=0 then
insert into test1023 values('1');
commit;
end if;
end;

B. oracle 的存储过程if怎么嵌套啊

我给你举个例子:
--配送量(万箱)
select sum(QUANTITY_SUM) into quantity_sum from DWV_OUT_DIST_BILL where to_char(DIST_DATE,'YYYYMM')=month ;
if quantity_sum is null then
quantity_sum:=0;
end if;
--转换成万箱
quantity_sum :=quantity_sum/50/10000;

C. oracle存储过程中写IF ELES

if 条件 then
语句
elsif 条件 then
语句
else
语句
end if;

D. oracle procere存储过程

OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS/AS变量1 INTEGER :=0;变量2 DATE;BEGIN.END 存储过程名字2、SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列(字段)存储到多个变量中,必须有一条记录,否则抛出异常(如果没有记录,抛出NO_DATA_FOUND)
例子:
BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN ROLLBACK; RAISE; END;3、IF判断
IF 条件1 THEN Do Someting ELSIF 条件2 THEN Do Someting ELSIF 条件3 THEN Do Someting ELSE Do SometingEND IF;4、while循环
WHILE V_TEST=1 LOOP BEGIN XXXX END; END LOOP; 5、变量赋值
V_TEST := 123; 6、用for in使用cursor(游标)
. IS CURSOR cur IS SELECT * FROM xxx; BEGIN FOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.列名1+cur_result.列名2 END; END LOOP; END; 7、用pl/sql developer debug
连接数据库后建立一个Test Window
在窗口输入调用SP的代码,F9开始Debug,CTRL+N单步调试
注意事项:
1)存储过程参数不带取值范围,in表示传入,out表示输出;
2)变量可带取值范围,后面接分号;
3)在判断语句前最好先用count(*)函数判断是否存在该条操作记录
4)用select.into.给变量赋值
5)在代码中抛出异常用RAISE;通常的用法:
EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE;/*异常分很多类,如NO_DATA_FOUND。OTHERS处本应该写异常名称,如果不想把异常分得那么细,可以笼统一点用OTHERS来捕获,即所有异常均用OTHERS来捕获。WHEN OTHERS THEN 表示是其它异常。RAISE表示抛出异常,让User可以看到。*/
6)AS/IS的区别
在试图(VIEW)中只能用AS不能用IS
在游标(CURSOR)中只能用IS不能用AS
7)输出变量赋值有两种,一种是直接:=,还有一种就是SELECT INTO
8)显示调试信息
a.存储过程中在必要的位置添加
DBMS_OUTPUT.put_line(‘HI‘);
b.打开DBMS_OUTPUT
show serveroutput;set serveroutput on;
9)删除PROCEDURE
DROP PROCEDURE procere_name;
oracle procere存储过程

E. oracle存储过程中if条件后的sql没有执行

你把你这两个 dbms输出的语句注释掉试下,你这两个语句后面都有封号,不是代表if语句已经结束了吗

F. oracle 存储过程里的if else

ifS_date=4then
p_temp();
elsifS_date!=4then
p_temp2();
endif;

G. 求教一下oracle存储过程中if的嵌套使用问题

一、
if()then
if()then
end if;
end if;
二、
if()then
elsif()then
end if;

H. oracle 存储过程 if语句

&&用and表示,如:
if 1=1 and 2=2 then
...
end;

||用or表示。

!用not表示。

I. Oracle 的存储过程怎么写。

oracle 存储过程的基本语法

1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...

3.IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;

4.while 循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;

5.变量赋值
V_TEST := 123;

6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;

7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;

8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试

热点内容
云服务器网关系列 发布:2024-11-25 01:00:42 浏览:971
图灵姬编程 发布:2024-11-25 00:52:40 浏览:314
编译好的程序不闪一下就没了 发布:2024-11-25 00:48:51 浏览:549
ts设置编译输出目录 发布:2024-11-25 00:43:28 浏览:448
元神比较好的云服务器 发布:2024-11-25 00:43:20 浏览:190
草人御魂怎么配置 发布:2024-11-25 00:30:37 浏览:738
ftp上传流程 发布:2024-11-25 00:18:27 浏览:90
安卓服光遇什么时候上线的 发布:2024-11-25 00:13:22 浏览:919
80万能买到酷路泽的什么配置 发布:2024-11-25 00:10:57 浏览:337
新浪微博中如何修改密码 发布:2024-11-25 00:10:52 浏览:101