Oracle創建表、修改字段類型


1.創建表

1.創建表

create table SCM_PER(  --SCM_PER表名
ID NUMBER(6) primary key,--主鍵ID
USERID varchar2(30),--用戶ID
--Permission varchar2(11),--用戶權限
--begin_date date,
--end_date date,
--def_date date,
--def_usr_id varchar2(30),
upd_date date,
upd_usr_id varchar2(30),
PRE_INV_005 number,
PRE_CM_001 number(2),
PRE_STK_039 number(2),
PRE_INV_012 number(2),
PRE_PRB_001 number(2),
REM varchar2(200)
)
SELECT * FROM SCM_PER

 2.創建序列

create sequence SCM_PER_Seq  --序列名
increment by 1
start with 1
maxvalue 999999999;

3.創建觸發器

create or replace trigger SCM_PER_TRG
  before insert
  on SCM_PER
  for each row
declare
  ID NUMBER;
begin
  SELECT SCM_PER_Seq.Nextval
  INTO :NEW.ID
  FROM DUAL;
end;
View Code 

 4.刪除列

alter table tablename drop (column)

5.增加列

alter table tablename add (column datatype [default value][null/not null],….);
--增加新字段
alter table TABLENAME add NAME VARCHAR2(200);
--增加備注
comment on column TABLENAME.NAME is '注釋';

 2.修改字段類型

注:無法直接修改字段類型,方法是添加一個新列,將原數據更新到新列中

--PROJ為tablename,CONSTRUCTION_SEQ為原列名
--修改原表名
alter table PROJ rename column CONSTRUCTION_SEQ to CONSTRUCTION_SEQold;
--增加新字段
alter table PROJ add CONSTRUCTION_SEQ VARCHAR2(200);
--增加備注
comment on column PROJ.CONSTRUCTION_SEQ is '更改后的字段,建造序列';--to_char
--將原字段數據給到新字段
update PROJ set CONSTRUCTION_SEQ=to_char(CONSTRUCTION_SEQold);
--刪除原字段
alter table PROJ drop column CONSTRUCTION_SEQold;
View Code

 3.查詢樹形所有上下級數據

select * from std_cls start with std_cls_id='SABT' connect by prior p_std_cls_no=std_cls_no
union
(select * from std_cls start with std_cls_id='SABT' connect by prior std_cls_no=p_std_cls_no)

 4.常用語句

1.將回車符去除

update TABLENAME t set t.column=replace(t.column,chr(13),'');--/r

 2.轉成日期格式

To_Date('2019-09-11 09:11:07', 'yyyy-mm-dd hh24:mi:ss')

 3.找到某個字段有非數字的

select * from Non_Ship_Mat s where regexp_replace(substr(s.non_ship_mat_id, 9, 14),'^[-\+]?\d+(\.\d+)?$','') is not null;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM