1. 程式人生 > >Oracle建立表以及新增欄位備註

Oracle建立表以及新增欄位備註

(一)檢測插入資訊的時候必須制定的欄位

 STAT_CDE  VARCHAR2(20) CHECK (STAT_CDE in ('S','C','A','E')),

表示只在S C A E

(二)設定主鍵以及非空

      ID  VARCHAR2(15) PRIMARY KEY NOT NULL,

(三)建立表

 create table es_invc_hdr_temp(
      ID  VARCHAR2(15) PRIMARY KEY NOT NULL,
      ORDER_KEY VARCHAR2(50) ,
      ORDER_REF_NO VARCHAR2(50) ,
      THIRD_PARTY_ORDER_ID VARCHAR2(100) ,
      STAT_CDE  VARCHAR2(20) CHECK (STAT_CDE in ('S','C','A','E')),
      REMARK   VARCHAR2(240), 
      CREATE_DTE  DATE not null,          
      UPDATE_DTE DATE 
);

(四)給表新增備註

COMMENT ON TABLE es_invc_hdr_temp IS '發票資訊臨時表';
COMMENT ON COLUMN es_invc_hdr_temp.ID IS '主鍵(自動生成)';
COMMENT ON COLUMN es_invc_hdr_temp.ORDER_KEY IS '訂單orderkey';
COMMENT ON COLUMN es_invc_hdr_temp.ORDER_REF_NO IS 'Eshop訂單編號';
COMMENT ON COLUMN es_invc_hdr_temp.THIRD_PARTY_ORDER_ID IS '第三方訂單編號';
COMMENT ON COLUMN es_invc_hdr_temp.STAT_CDE IS '發票狀態';
COMMENT ON COLUMN es_invc_hdr_temp.REMARK IS '備註';
COMMENT ON COLUMN es_invc_hdr_temp.CREATE_DTE IS '建立時間(不能為空)';
COMMENT ON COLUMN es_invc_hdr_temp.UPDATE_DTE IS '更新時間';

(五)查詢備註

SELECT
TABLE_NAME,
COLUMN_NAME,
COMMENTS
FROM
USER_COL_COMMENTS
WHERE
TABLE_NAME ='ES_INVC_HDR_TEMP';

執行結果如下:

(六)查看錶備註

SELECT
TABLE_NAME,
TABLE_TYPE,
COMMENTS
FROM
USER_TAB_COMMENTS
WHERE
TABLE_NAME = 'ES_INVC_HDR_TEMP';

執行結果如下:

轉載內容如下:作為筆記使用

1、建立序列:

create sequence seq_xx   --建立序列名稱
increment by 1  --增長幅度
start with 1  --初始值
maxvalue 9999999999999999;  --最大值

2、查詢序列:

select seq_xx.nextval from dual;

--或者select seq_xx.nextval from sys.dual;

select SEQ_ES_INVC_HDR_TEMP_ID.nextval from dual;--查詢索引最大值
select SEQ_ES_INVC_HDR_TEMP_ID.MAXVALUE from dual;
DROP SEQUENCE SEQ_ES_INVC_HDR_TEMP_ID;--刪除

每查詢一次,序列按自定義增長;

3、刪除序列:

DROP SEQUENCE seq_xx;

4、判斷序列是否存在,存在則刪除:

有些情況下使用不合理,刪除已有序列,再新建同名序列之後,重新使用該規則,可能會對已使用該序列資料造成影響。

加了“/”之後,可以在後面接其他的SQL語句;

declare   
 V_NUM number;   
BEGIN  
  ----多次刪除時,每次都將v_num設定成為0
    V_NUM := 0;  
    ----判斷序列 seq_name_1 是否存在(區分大小寫)
    select count(0) into V_NUM from user_sequences where sequence_name = 'SEQ_XX'; 
    ----如果存在立即刪除  
    if V_NUM > 0 then   
    execute immediate 'DROP SEQUENCE  SEQ_XX'';   
    end if;

END;

/

5、查詢序列大小寫問題

select * from user_sequences;   --查詢使用者建的序列

我們發現欄位SEQUENCE_NAME的值裡面有剛才建立的SEQ_XX,這就解釋了為什麼判斷存在時候名字區分大小寫了

判斷序列是否存在引用https://blog.csdn.net/jay329106193/article/details/7637665