时间:2021-07-01 10:21:17 帮助过:19人阅读
-- loop的三种形式
(1).LOOP
(2).WHILE ... LOOOP
(3).FOR ... LOOP
1.基本的LOOP语句
SET serveroutput ON;
-- exit ... when 结束循环
DECLARE
v_value NUMBER(8) := -3;
BEGIN
<<value_loop>> -- 循环标记
LOOP
dbms_output.put_line(‘v_value = ‘ || v_value);
v_value := v_value+1;
EXIT value_loop WHEN v_value > 3;
END LOOP;
dbms_output.put_line(‘loop循环结束!‘);
END;
-- if ... exit 结束循环
DECLARE
v_value NUMBER(8) := -3;
BEGIN
<<value_loop>>
LOOP
dbms_output.put_line(‘value:‘ || v_value);
v_value := v_value +1;
IF v_value > 3 THEN
dbms_output.put_line(‘value is larger than 3 , current value is ‘ || v_value);
EXIT value_loop;
END IF;
END LOOP value_loop;
dbms_output.put_line(‘loop is end‘);
END;
2.while ...loop 结构
本身可以结束循环
DECLARE
v_value NUMBER(8) := -3;
BEGIN
<<while_loop>>
WHILE(v_value < 4)
LOOP
dbms_output.put_line(‘value is ‘ || v_value);
v_value := v_value + 1;
END LOOP while_loop;
dbms_output.put_line(‘while loop is end‘);
END;
3. FOR ... LOOP 结构
可以遍历某个范围整数
BEGIN
FOR v_value IN -3..3 LOOP
dbms_output.put_line(‘value is ‘ || v_value);
END LOOP ;
dbms_output.put_line(‘for loop is end‘);
END;
-- oracle 的时间
SYSDATE 系统时间
SYSTIMESTAMP 当前系统的时间戳
CURRENT_TIMESTAMP 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的.
current_date 是对CURRENT_TIMESTAMP准确到秒的四舍五入。
select sysdate,systimestamp,current_date,current_timestamp from dual;
-- oracle序列
CREATE SEQUENCE SEQ_TT_TRMS_CAR_TASK
START WITH 1
INCREMENT BY 1
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE
currval:返回sequence的当前值
nextval:返回增加sequence的值,然后返回sequence的值
SELECT SEQ_TT_TRMS_CAR_TASK.currval FROM dual;
SELECT SEQ_TT_TRMS_CAR_TASK.nextval FROM dual;
-- sql%rowcount
oracle 的变量 影响的行数
oracle语法记录
标签:bms pre sql acl cycle 返回 declare div time