首页 > 代码库 > Oracle 语法

Oracle 语法

1.建表
CREATE TABLE COMPARE_KPPO_HEADER
(
COMPARE_HD_ID NUMBER,--primary key not null,为主键的意思
PPO_NO VARCHAR2(20),
PPO_REV_NO VARCHAR2(20),
CREATE_DATE DATE,
CREATE_USER_ID VARCHAR2(20),
COMPARE_TYPE VARCHAR2(20),
ORDER_TYPE VARCHAR2(10)
);

2.修改表
ALTER TABLE COMPARE_KPPO_HEADER
ADD COLUMNS (ORDER_TYPE VARCHAR2(10),
    ORDER_NAME VARCHAR2(15)); 

ALTER TABLE COMPARE_KPPO_HEADER
MIDIFY COLUMS(ORDER_TYPE VARCHAR2(20));  

ALTER TABLE COMPARE_KPPO_HEADER
DELETE COLUMNS ORDER_TYPE; 

ALTER TABLE table_name RENAME TO new_table_name;--修改表名

3.建立自增键
CREATE SEQUENCE ESCMUSER.COMPARE_KPPO_HEADER_SEQ; 

--完整语法
CREATE SEQUENCE seqTest
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE
 
4.获取自增键的值,并将该值赋给变量
SELECT COMPARE_KPPO_HEADER_SEQ.NEXTVAL  INTO  v_COMPARE_HD_ID FROM DUAL;

5.建立视图
CREATE OR REPLACE VIEW V_TEMP AS
SELECT DISTINCT PH.PPO_NO
FROM PPO_HD PH


6.if else语句
IF v_ORDER_TYPE = ‘KNBU‘ THEN
     ........
ELSIF v_ORDER_TYPE=‘KNSP‘ THEN--注意此处是ELSIF,少了一个E
    ................
END IF; 


--以下内容为Package
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PACKAGE ESCMUSER.KPPO_COMPARE_PACK 
IS        
    --生成PPO对比数据
    PROCEDURE p_gen_compare_kppo(v_PPO_NO VARCHAR2,v_PPO_REV_NO NUMBER,v_ORDER_TYPE VARCHAR2, v_UserID VARCHAR2,v_OPERATION_TYPE VARCHAR2);        
END KPPO_COMPARE_PACK;
--定义包体


CREATE OR REPLACE PACKAGE BODY ESCMUSER.KPPO_COMPARE_PACK
IS
    PROCEDURE p_gen_compare_kppo_main(v_COMPARE_HD_ID NUMBER,v_PPO_NO VARCHAR2);
    PROCEDURE p_gen_compare_kppo_labdip(v_COMPARE_HD_ID NUMBER,v_PPO_NO VARCHAR2,v_ORDER_TYPE VARCHAR2);        
    PROCEDURE p_gen_compare_kppo(v_PPO_NO VARCHAR2,v_PPO_REV_NO NUMBER,v_ORDER_TYPE VARCHAR2, v_UserID VARCHAR2,v_OPERATION_TYPE VARCHAR2)
    IS
    v_COMPARE_HD_ID NUMBER;
    BEGIN 
        ..................................
    END;

Oracle 语法