1. 程式人生 > >oracle語法記錄

oracle語法記錄

範圍 acl declare rom rms 基本 sel begin sys

-- 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語法記錄