Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91745989
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 19:14:02




 <7>.manually allocating extents
 sql> alter table table_name allocate extent(size 500k datafile 'c:/oracle/data.dbf');
 <8>.move tablespace
 sql> alter table employee move tablespace users;
 <9>.deallocate of unused space
 sql> alter table table_name deallocate unused [keep integer]
 <10>.drop a column
 sql> alter table table_name drop column comments cascade constraints checkpoint 1000;
 alter table table_name drop columns continue;
 <11>.mark a column as unused
 sql> alter table table_name set unused column comments cascade constraints;
  alter table table_name drop unused columns checkpoint 1000;
  alter table orders drop columns continue checkpoint 1000
  data_dictionary : dba_unused_col_tabs

37. 中文是如何排序的?

Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序

38. 数据表中的字段最大数:
表或视图中的最大列数为 1000


39. oracle中的裸设备:
  裸设备就是绕过文件系统直接访问的储存空间

40. 在Oracle服务器上通过SQLPLUS查看本机IP地址 ?
select sys_context('userenv','ip_address') from dual;
如果是登陆本机数据库,只能返回127.0.0.1

41. 在ORACLE中取毫秒?
   9i之前不支持,9i开始有timestamp.
   9i可以用select systimestamp from dual;

42. 将N秒转换为时分秒格式?
   set serverout on
   declare
   N number := 1000000;
   ret varchar2(100);
   begin
   ret := trunc(n/3600) '小时' to_char(to_date(mod(n,3600),'sssss'),'fmmi"分   "ss"秒"') ;
   dbms_output.put_line(ret);
   end;

43、在某个用户下找所有的索引
   select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
   from user_ind_columns, user_indexes
   where user_ind_columns.index_name = user_indexes.index_name
   and user_ind_columns.table_name = user_indexes.table_name
   order by user_indexes.table_type, user_indexes.table_name,
   user_indexes.index_name, column_position;


44. not in的替代。
   一般not in的效率比较低。特别是数据量大的时候,几乎不能执行。
   用下面几种方式可以替换写法
   比如要查询在fee_rev_info表中已经销户的用户(不在cm_user中的)(不过下面的例子不是很好,因为bill_id是cm_user的唯一索引)
   select * from fee_rev_info where bill_id not in (select bill_id from cm_user)  
   <1> 用not exists
   select * from fee_rev_info a where not exists (select 'p' from cm_user b where b.bill_id = a.bill_id)
   <2> 用外连接(+)
 select a.* from fee_rev_info a,cm_user b
 where a.bill_id = b.bill_id (+)
 and b.bill_id is null
   <3> 用hash_aj
   select /*+HASH_AJ*/* from fee_rev_info where bill_id not in (select bill_id from cm_user)  

45.怎么样查询特殊字符,如通配符%与_

阅读(209) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~