ORA-02287
ORA-02287: sequence number not allowed here 原文出处:http://www.orafaq.com/wiki/ORA-02287What causes this error?An ORA-02287 occurs when you use a sequence where it is not allowed. The usage of a sequence is limited and it can be used only in few areas of PL/SQL and SQL coding. [edit]Where can one use sequencesThe following are the cases where you can't use a sequence: For a SELECT Statement: In a WHERE clause In a GROUP BY or ORDER BY clause In a DISTINCT clause Along with a UNION or INTERSECT
什么是DTO
Data Transfer Object(数据传输对象)您正在设计一个分布式应用程序,为了满足单个客户端请求,您发现自己对一个远程接口发出了多个调用,而这些调用所增加的响应时间超出了可接受的程度。 问题如何保留过程调用接口的简单语义,而不受远程通信固有的滞后时间问题的影响?影响因素在与远程对象通信时,请考虑下列需要权衡的因素:远程调用(那些必须跨越网络的调用)速度缓慢。虽然许多远程调用框架可以隐藏进行远程调用的复杂性,但是它们不能消除发生通信所需的步骤。例如,必须先找到远程对象位置,而且建立与远程计算机的连接,然后才
Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法(转载)
Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法 ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序 而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) RANK() 类似,不过RANK 排序的时候跟派名次一样,可以并列2个第一名之后 是第3名 LAG 表示 分组排序后 ,组内后面一条记录减前面一条记录的差,第一条可返回 NULL BTW: EXPERT ONE ON ONE 上讲的最详细,还有很多相关特性,文档看起来比较费劲row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序)
Oracle统计分析函数集之一(转载)
原文:http://www.cnblogs.com/lizw/archive/2007/04/26/729004.html分析函数over 及开窗函数 一:分析函数over Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。 date sale 1 20 2 15 3 14 4 18 5 30 规则:按天统计:每天都统计前面几天
oracle统计函数
原文出处:http://blog.csdn.net/shangqiao/archive/2007/07/02/1676169.aspx统计函数的语法:Analytic-Function(<Argument>,<Argument>,...)OVER ( <Query-Partition-Clause> <Order-By-Clause> <Windowing-Clause>)Analytic-FunctionSpecify the name of an analytic function, Oracle actually provides many analytic functions such as AVG, CORR, COVAR_POP, COVAR_SAMP, COUNT, CUME_DIST, DENSE_RANK, FIRST, FIRST_VALUE, LAG, LAST, LAST_VALUE, LEAD, MAX, MIN, NTILE, PERCENT_RANK, PERCENT
物化视图——数据仓库手册
原文出处:http://blog.itpub.net/post/468/11356Oracle的物化视图提供了强大的功能,可以用在不同的环境中。在不同的环境中,物化视图的作用也不相同。 数据仓库中的物化视图主要用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。在数据仓库中,还经常使用查询重写(query rewrite)机制,这样不需要修改原有的查询语句,Oracle会自动选择合适的物化视图进行查询,完全对应用透明。 物化视图和表一样可以直接进行查询。物化视图可以基于分区表,物化视图本
ORACLE 表连接方法
ORACLE 8i,9i 表连接方法。 一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。 对于外连接: Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN LEFT OUTER JOIN:左外关联 SELECT e.last_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id); 等价于 SELECT e.last_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id(+) 结果为:所有员
分析ORACLE日志文件
分析Oracle日志文件作为Oracle DBA,我们有时候须要追踪数据误删除或用户的恶意操作情况,此时我们不仅须要查出履行这些操作的数据库账号,还须要知道操作是由哪台客户端(IP地址等)发出的。针对这些问题,一个最有效实用而又低成本的办法就是分析Oracle数据库的日志文件。本文将就Oracle日志分析技能做深入探讨。一、如何分析即LogMiner说明 从目前来看,分析Oracle日志的唯一办法就是应用Oracle公司供给的LogMiner来进行, Oracle数据库的所有更改都记载在日志中,但是原始的日志信息我们基本无法看懂,而LogMiner就是让我们看懂日志信
Oracle imp 总是不停地重复闪烁
感觉这是个很搞笑的问题;在dos下执行: imp username/password buffer=1000000 file=(lpmast_bj_01) tables=(lpmast) grants=n indexes=n constraints=n filesize=2g log=lpmast_bj_imp.log feedback=100 commit=y ignore=y 结果下面出来很多 imp username/password buffer=1000000 file=(lpmast_bj_01) tables=(lpmast) grants=n indexes=n constraints=n filesize=2g log=lpmast_bj_imp.log feedback=100 commit=y ignore=y imp username/password buffer=
ORA-12705: Cannot access NLS data files or invalid
安装了Oralce Client後,链接数据库报ORA-12705: Cannot access NLS data files or invalid 错误,解决方法:1)网上找了下 原来是NLS_LANG在注册表里的值是NA,这是安装了Oracle Client 又卸载而遗留下来的,只要在HKEY_LOCAL_MACHINESOFTWAREORACLE下找到NLS_LANG刪除就可以了这样改后 中文好像出现了乱码 。2)最好是通过查看客户端的NLS_LANG设置,最好与服务端保持一致,这样就不会报错,也不会有乱码的问题。[@more@]
端口学习资料
原文出处:http://zhidao.baidu.com/question/29864413.html说到端口,这确实是个老话题,但一切都是从它开始的,不得不说。何谓端口,打个比方,你住在一座房子里,想让别人来拜访你,得在房子上开个大门,你养了个可爱的小猫,为了它的进出,专门给它修了个小门,为了到后花园,又开了个后门……所有这些为了进到这所房子里而开的门叫端口,这些为了别人进来而开的端口称它为“服务端口”。 你要拜访一个叫张三的人,张三家应该开了个允许你来的门--服务端口,否则将被拒之门外。去时,首先你在家开个“门”,然后通过这个“门”径直走进
ORACLE的索引和约束详解
Oracle的约束* 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段, 必须在表级定义约束 * 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称 定义primary key约束(单个字段) create table employees (empno number(5) primary key,...) 指定约束名 create table employees (empno number(5) constraint emp_pk primary key,...) 定义primary key约束(多个字段,在表级定义约束) create table employees (empno number(5),
LIKE的优化
1。尽量不要使用 like '%..%' 2。对于 like '..%..' (不以 % 开头),Oracle可以应用 colunm上的index3。对于 like '%...' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like '..%'代码: -- '建测试表和Index,注意,重点在于带reverse的function index。同时,一定要使用CBO才行……sys@mescp> select reverse('123') from dual;REVERSE('123')--------------------------------3211 row selected.sys@mescp> create table test_like as select object_id,object_name from dba_objects;Table created.sys@m
关于应用优化(讨论)
关于应用优化(讨论)1.从top sql中找出最耗资源的SQL 2.提高绑定率 2.1 如果可以修改程序,那么就把常量用变量替换 对于sql语法采用绑定变量的写法 如 java:使用?代替变量 plsql:采用绑定变量的写法,用":"来代替变量. 2.2 cursor_sharing = similar (可以在不修改程序的前提下提高绑定率) 3. 减少软解析次数 3.1 初始化参数中增加session_cache_cursors数 3.2 java:,sql采用prepared/callable statement.保持cursor的时间 3.3 plsql:动态sql采用dbms_sql,除非这个sql只是执行一次,那么就使用e
临时表空间的使用问题
如果我们使用的临时表空间是temoprary的,就会在v$sort_segment中显示,如果临时表空是permanent的话,就不会在这个表中进行显示了. 代码:SQL> select tablespace_name,extent_size,total_extents,total_blocks fromv$sort_segment;TABLESPACE_NAME EXTENT_SIZE TOTAL_EXTENTS TOTAL_BLOCKS------------------------------- ----------- ------------- ------------TEMP 128 5999 767872视图v$sort_usage显示oracle在如何使用和分配临时段的. 代码:SQL> select username,session_addr,sqladdr,sqlhash,segtype,2 segfile#,segblk#,exte
Struts-config.xml配置文件讲解
Struts-config.xml配置文件讲解Struts的核心是struts-config.xml配置文件,在这个文件里描述了所有的Struts组件。 在这里包括配置主要的组件及次要的组件,下面是struts-config.xml包含主要元素的内容: 一、 struts-config.xml的主要元素: <?xml version=”1.0” encoding=”ISO-8859-1”?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><
散列连接,索引,嵌套循环
1 深入理解嵌套循环执行计划 为什么要引入散列连接呢?假设两张表t1(c1 int,c2 int),t2(d1 int,d2 int),查询语句为select c1,d1 from t1 inner join t2 on c1=d1。如果数据库没有实现散列连接、合并连接的话,只能选择使用嵌套循环。从上篇文章中我们可以得到,对于t1的每一条记录,都需要遍历t2的每一条记录。因此,当t1的记录数数为m,t2的记录数为n,那么该查询语句访问的记录次数为m*n。当m=10000、n=10000时,那么m*n=100000000(1亿)。这是比较夸张的浪费时间。如果m是100万,n是100万,那么m*n就是1万亿次,读一万亿次记录,这是不