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