Oracle表操作_看这一篇就够了

整理了一些oracle,权限表常规操作

脚本命名:01_ddl/dml_执行用户_xxx建表/授权/同义词

--创建表
create table T_TABLE_NAME
(
  PKID         VARCHAR2(32) default sys_guid() not null,
  p_name1      VARCHAR2(50),
  p_name2      VARCHAR2(32) not null,
  p_name3      VARCHAR2(100) default 'admin' not null,
  p_name4      NUMBER,--java BigDecimal
  p_name5      NUMBER not null,
  p_name6      NUMBER(10),
  p_name7      NUMBER(30,6) default 0,
  p_name8      VARCHAR2(10) default to_char(add_months(trunc(sysdate),-1),'yyyymm') not null,      
  p_name9      DATE,
  p_name10      BLOB,--java byte[]
  DELETED_FLAG VARCHAR2(2) default 0 not null,
  CREATED_DATE DATE default sysdate not null,
  CREATED_BY   VARCHAR2(100) default 'init' not null,
  UPDATED_DATE DATE default sysdate not null,
  UPDATED_BY   VARCHAR2(100) default 'init' not null
)
;
--增加注释
comment on table T_TABLE_NAME is '测试表_表名注释';
comment on column T_TABLE_NAME.PKID is '主键';
comment on column T_TABLE_NAME.p_name1 is '参数一';
  
-- 定义主键
alter table T_TABLE_NAME add constraint PK_T_TABLE_NAME_PKID primary key (PKID) --using index tablespace OTHER_INDX;

-- 定义索引(单列)
create unique index IDX_T_TABLE_NAME_TASK_NO on T_TABLE_NAME (p_name1) --tablespace OTHER_INDX;

-- 定义索引(联合)
create unique index IDX_T_TABLE_NAME_TASK_NO on T_TABLE_NAME (p_name1,p_name2,p_name3...) --tablespace OTHER_INDX;

--给子用户授权(USER_A 授权给 USER_B)
grant select, insert, delete, update on USER_A.T_TABLE_NAME to USER_B;

--创建同义词(USER_B 获取来自于 USER_A 的授权表)
create or replace synonym T_TABLE_NAME for USER_A.T_TABLE_NAME;

常用操作:

--=================字段操作=======================

-- 新增字段
alter table T_TABLE_NAME add (p_name11 DATE);
comment on column T_TABLE_NAME.p_name11 is '11字段注释';
 
alter table T_TABLE_NAME add (p_name12 varchar2(2) default 0);
comment on column T_TABLE_NAME.p_name12 is '12字段注释';  

alter table T_TABLE_NAME add (p_name12 varchar2(2) default 0 not null);
comment on column T_TABLE_NAME.p_name12 is '12字段注释';  
  
--修改字段名称
alter table T_TABLE_NAME rename column old_p_name13 to new_p_name14;

--修改字段类型(字段内容为null)
alter table T_TABLE_NAME modify (p_name15 varchar2(20));

--修改字段类型(字段内容非null)
alter table T_TABLE_NAME modify (p_name15 nvarchar2(20));

-- 修改存在字段默认值
alter table T_TABLE_NAME modify p_name15 default 默认值;

--删除字段
alter table T_TABLE_NAME drop column p_name16;

--=================权限操作=======================

-- 查询当前用户表权限(含储存过程other)
select * from all_tab_privs;
select * from user_tab_privs; 
    
-- 授权:A用户 --> B用户
grant select, insert, delete, update on USER_A.T_TABLE_NAME to USER_B;

-- 取消:A用户 --> B用户
revoke select, insert, delete, update on USER_A.T_TABLE_NAME FROM  USER_B;

--=================同义词操作=======================

-- 创建同义词
create or replace synonym T_TABLE_NAME for USER_A.T_TABLE_NAME;
-- 删除同义词
drop synonym T_TABLE_NAME;

猜你喜欢

转载自blog.csdn.net/qq_36521848/article/details/106580438