oracle 常用sql记录.

以下是在实际开发,运维系统时可能用到的SQL.不定期更新.

1.查询已经删除的表
select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin;

2.还原已经删除的表
flashback table 这里写表名 to before drop;

3.使用索引的like,当业务需要前后like模糊查询时,可以参考这么做.
-- like '%abcd%' 全表扫描; like '%abcd' 走索引; like 'abcd%' 不走索引(不过可以用reverse将字段反向.就可以使用第二种了.);
-- 这相当于like
select * from tableName t where  instr(t.colunm,'abcd')>0; 
-- 这相当于not like
select * from tableName t where instr(t.colunm,'abcd')=0;
-- 还有一种可以切割字符串.然后使用等于号.也是走索引的.
select * from tableName t where substr(t.colunm,length(t.colunm) -3) = 'abcd';

4.当一个新的oracle数据库.创建表空间.
均需要登录到dba帐号
-- 创建一个临时表空间
create temporary tablespace lyhdata_temp tempfile '/oracle/app/oradata/lyhdata/lyhdata_temp.dbf' size 1024M autoextend on next 512M maxsize  4096M extent management local;
-- 创建表空间
create tablespace lyhdata logging datafile '/oracle/app/oradata/lyhdata/lyhdata.dbf' size 1024M autoextend on next 512M maxsize 4096M extent management local;
-- 创建一个用户,把上面的表空间跟用户关联起来
create user WSJMC identified by WSJMC1 default tablespace lyhdata temporary tablespace lyhdata_temp;
-- 给上面创建的用户赋权
grant connect,resource to WSJMC;

5.创建一个只能查询的用户.
-- 先创建一个用户,需要用DBA的账户登录执行.
create USER abcd_user identified byabcd_user;
-- 赋予登录相关权限.
grant connect toabcd_user;
grant create synonym toabcd_user;
-- 所有表的查询权限赋予,把下面查询出来的结果执行一遍.
SELECT 'grant select on ' || OWNER || '.' || OBJECT_NAME || ' toabcd_user;' FROM DBA_OBJECTS WHERE OWNER IN ('abc_user') AND OBJECT_TYPE = 'TABLE';
-- 创建同义词,操作同上.
SELECT 'create or replace synonymabcd_user.' || OBJECT_NAME || ' for ' || OWNER || '.' || OBJECT_NAME || ';' FROM DBA_OBJECTS WHERE OWNER IN ('abc_user') AND OBJECT_TYPE = 'TABLE';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值