Oracle建立表以及新增字段備註

2021-09-01 13:20:44 字數 3247 閱讀 3297

目錄

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

(二)設定主鍵以及非空

(三)建立表

(四)給表新增備註

(五)查詢備註

(六)檢視表備註

(七)建立同義詞以及授予增刪改查許可權

1、建立序列:

2、查詢序列:

3、刪除序列:

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

5、查詢序列大小寫問題

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';

執行結果如下:

執行結果如下:

--(必須先建立同義詞)

create or replace public synonym es_hybris_order_sms_hist for sys_iv.es_hybris_order_sms_hist;

--(其次再授予許可權)

create sequence seq_xx   --建立序列名稱

increment by 1  --增長幅度

start with 1  --初始值

maxvalue 9999999999999999;  --最大值

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;--刪除

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

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

加了「/」之後,可以在後面接其他的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;

/

select * from user_sequences;   --查詢使用者建的序列
我們發現欄位sequence_name的值裡面有剛才建立的seq_xx,這就解釋了為什麼判斷存在時候名字區分大小寫了

判斷序列是否存在引用

Oracle 之 表新增欄位後修改字段順序

工作中遇到 在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。1 原始方法 新建臨時表以儲存正確的順序 create table a 2 as select column1,colum2,a表中的順序 from a 1 刪除表a 1 drop table a 1 新建a 1並從a 2表中賦...

Oracle 之 表新增欄位後修改字段順序

工作中遇到 在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。1 原始方法 新建臨時表以儲存正確的順序 create table a 2 as select column1,colum2,a表中的順序 from a 1 刪除表a 1 drop table a 1 新建a 1並從a 2表中賦...

Oracle 之 表新增欄位後修改字段順序

工作中遇到 在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。1 原始方法 新建臨時表以儲存正確的順序 create table a 2 as select column1,colum2,a表中的順序 from a 1 刪除表a 1 drop table a 1 新建a 1並從a 2表中賦...