-- 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 的变量 影响的行数
时间: 2024-10-19 07:01:29