易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

oracle对top的支持

1.在ORACLE中实现SELECT TOP N
   由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。
简单地说,实现方法如下所示:
      SELECT 列名1...列名n from
        (SELECT 列名1...列名n from 表名 ORDER BY 列名1...列名n)
       WHERE ROWNUM <= N(抽出记录数)
      ORDER BY ROWNUM ASC
   下面举个例子简单说明一下。
顾客表customer(id,name)有如下数据:
      ID NAME
       01 first
       02 Second
       03 third
       04 forth
       05 fifth
       06 sixth
       07 seventh
       08 eighth
  ......

oracle distinct

oracle distinct
关键字: distinct的一些杂谈
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
下面先来看看例子:
table表
字段1     字段2
   id        name
   1           a
   2           b
   3           c
   4           c
   5           b
库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。
比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。
select distinct name from table
得到的结果是:
  ......

Oracle中的Union、Union All、Intersect、Minus

众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考。
  假设我们有一个表Student,包括以下字段与数据:
  drop table student;
  create table student
  (
  id int primary key,
  name nvarchar2(50) not null,
  score number not null
  );
  insert into student values(1,'Aaron',78);
  insert into student values(2,'Bill',76);
  insert into student values(3,'Cindy',89);
  insert into student values(4,'Damon',90);
  insert into student values(5,'Ella',73);
  insert into student values(6,'Frado',61);
  insert into student values(7,'Gill',99);
  insert into student values(8,'Hellen',56);
  insert into student values(9,'Ivan',93);
  insert into student values(10,'Jay',90);
  commit;
  Union和Union All的区别。
  select *
  from student
  where id < 4
  union
  select *
  from student
  where id > 2 and id < 6
  结果将是
  1    Aaron    78
  2&nbs ......

oracle数据字典


数据字典dict总是属于Oracle用户sys的。
  1、用户:
   select username from dba_users;
  改口令
   alter user spgroup identified by spgtest;
  2、表空间:
   select * from dba_data_files;
   select * from dba_tablespaces;//表空间
   select tablespace_name,sum(bytes), sum(blocks)
    from dba_free_space group by tablespace_name;//空闲表空间
   select * from dba_data_files
    where tablespace_name='RBS';//表空间对应的数据文件
   select * from dba_segments
    where tablespace_name='INDEXS';
  3、数据库对象:
   select * from dba_objects;
   CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
   PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
  4、表:
   select * from dba_tables;
   analyze my_table compute statistics;->dba_tables后6列
   select extent_id,bytes from dba_extents
   where segment_name='CUSTOMERS' and segment_type='TABLE'
   order by exte ......

ORACLE的ALL_VIEWS数据字典text字段long类型问题

今天同事raise一个小问题,怎么在ALL_VIEWS数据字典text字段查找lrf字符串:
etl@DWTEST> select owner,view_name from all_views where instr(text,'lrf') > 0;
select owner,view_name from all_views where instr(text,'lrf') > 0
                                                  *
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected NUMBER got LONG
因text字段为long类型,此数据类型限制较多,故可以参考下面的PL\SQL代码段解决:
DECLARE
  v_instr_view_ddl NUMBER;
BEGIN
  FOR l_ctr IN (SELECT owner,view_name,
                       sign(dbms_lob.instr(DBMS_METADATA.get_ddl('VIEW',view_name,owner),'lrf')) AS instr_view_ ......

每天1点执行的oracle JOB样例


DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'syn_rpt_members_relation;'
,next_date => to_date('02-07-2008 01:00:00','dd/mm/yyyy hh24:mi:ss')
,interval => 'trunc(sysdate)+1+1/24'
,no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/
以上是明确指定每天的1点执行此job,如果指定是每天中午12点执行interval需要指定为 'trunc(sysdate)+1+12/24',如果仅仅指定interval为一天,这样当你手工用dbms_job.run(job)去运行一次时,job每天的执行时间是会改变的,如果你想job每天在固定时间执行,可以参考上面的例子.
初始化相关参数job_queue_processes
alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位
job_queue_process 表示oracle能够并发的 job的数量,可以通过语句  
show parameter job_queue_process;
来查看oracle中job_queue_process的值。当job_queue_process值为0时表示全部停止oracle的job,可以通过语句
ALTER SYSTEM SET job_queue_processes = 10;
来调整启动 ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [1467] [1468] [1469] [1470] 1471 [1472] [1473] [1474] [1475] [1476]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号