1.查询当前用户下某张表的字段类型
方法一:
SELECT * FROM USER_TAB_COLUMNS where TABLE_NAME = 'TAL_A01' AND COLUMN_NAME = 'T0101';
方法二:
SELECT * FROM ALL_TAB_COLUMNS
WHERE 1=1
AND OWNER = 'ZKX20191025' AND TABLE_NAME = 'TAL_A01' AND COLUMN_NAME = 'T0101'
2.查询Oracle数据库的字符集
select userenv('language') from dual;
3.恢复历史时刻数据
3.1利用闪回,查询历史时刻数据:
select * from TAL_A01 AS OF TIMESTAMP to_timestamp('2019-10-28 20:18:10','yyyy-MM-dd HH24:mi:ss');
注意:如果指定未来时间,则会报以下错:
3.2利用闪回,恢复到历史时刻数据:
3.2.1 步骤
步骤1:启动表的row movement特性;
步骤2:闪回指定时间的快照;
步骤3:关闭表的row movement功能;
3.2.1 实例
-- 步骤1:
ALTER TABLE TAL_STAT_GUIDELINE ENABLE ROW MOVEMENT;
-- 步骤2:
FLASHBACK TABLE TAL_STAT_GUIDELINE TO TIMESTAMP TO_TIMESTAMP('2019-12-02 09:00:00','yyyy-mm-dd hh24:mi:ss');
-- 步骤3:
ALTER TABLE TAL_STAT_GUIDELINE DISABLE ROW MOVEMENT;
注意:
开启闪回,得 启动表的row movement特性 否则,会报以下错:
4.添加、修改、删除表字段
-- 添加表字段
ALTER TABLE TAL_A01 ADD T_A0101 VARCHAR2(500);
-- 修改表字段
ALTER TABLE TAL_A01 MODIFY T_A0101 VARCHAR2(1000);
-- 删除表字段
ALTER TABLE TAL_A01 DROP (T_A0101);
5.查看某个用户下有多少张表:
SELECT count(1) AS FROM user_tables; --登录该用户
6.联合主键
6.1删除主键约束:
ALTER TABLE TAL_DM_01 DROP CONSTRAINT PK_TAL_DM_01;
注:TAL_DM_01为表名,PK_TAL_DM_01为约束名
6.2添加联合主键:
ALTER TABLE TAL_DM_01 ADD CONSTRAINT PK_TAL_DM_01 PRIMARY KEY (DMCOD,DMCPT);
注:添加联合主键时,得将原有主键约束删除掉,再添加多个主键约束。
TAL_DM_01为表名,PK_TAL_DM_01为约束名,DMCOD和DMCPT为设置成联合主键的字段名
7.查看表序列
-- 其中 last_number 为当前值
SELECT * FROM user_sequences;
8.查看当前用户的角色和权限(系统权限、表级权限)
-- 查看当前用户的角色
SELECT * FROM user_role_privs;
-- 查看当前用户的系统权限
SELECT * FROM user_sys_privs;
-- 查看当前用户的表级权限
SELECT * FROM user_tab_privs;
9.查看表创建时间
--查看某表的创建时间
SELECT * FROM user_objects WHERE object_name = 'TAL_A01';
10.查看数据库版本号
SELECT * FROM product_component_version WHERE upper(product) like '%ORACLE%';
11.解锁Oracle账户
// RSGL_GB:账户名
alter user RSGL_GB account unlock;