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;