Oracle 语法

Posted WesChan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 语法的主要内容,如果未能解决你的问题,请参考以下文章

oracle 中SQL 语句开发语法 SELECT INTO含义

Oracle存储过程的语法分析

在oracle中创建存储过程的语法

oracle基本语法

Oracle sql语法

oracle中查询首字母大写的语法