- 浏览: 339197 次
- 性别:
- 来自: 西安
-
最新评论
-
hufangxian:
估计面试官都被你的回答搞晕了。
抽象类和接口的理解 -
alvin198761:
需要了解多态和设计模式,了解一些框架的原理,你就知道这东东真正 ...
抽象类和接口的理解 -
sangei:
谢谢楼上提醒,希望慢慢能有所进步。
抽象类和接口的理解 -
jackra:
书背的不错可以看看设计模式如何使用抽象类
抽象类和接口的理解 -
ptsd:
lag(column_x,number1,XX)用来返回当前数 ...
【转】oracle的LAG和LEAD分析函数
文章列表
1、先建立一个包,定义数组类型:CREATE OR REPLACE PACKAGE pkg_string is -- Purpose : 字符串处理 -- Public type declarations TYPE StringArray IS VARRAY(2000) OF VARCHAR2(2000);END pkg_string;2、拆分字符串的通用函数:CREATE OR REPLACE FUNCTION fun_ParseToArray( a_SourceString IN VARCHAR2, --源字符串 a_Delimiter IN VARCHAR2 ...
1.OracleParameterpout1=OracleDbType.Varchar2,50);3.数组的参数类型为OracleCollectionType.PLSQLAssociativeArray,且必须明确指定数据元素的个数。如:OracleParameterv_OIDS=newOracleParameter("v_OIDS",OracleDbType.Int64);v_OIDS.Direction=ParameterDirection.Output;v_OIDS.Si ...
EXECUTE IMMEDIATE Statement
The EXECUTE IMMEDIATE statement executes a dynamic SQL statement or anonymous PL/SQL block. You can use it to issue SQL statements that cannot be represented directly in PL/SQL, or to build up statements where you do not know all the table names, WHERE clauses, and so o ...
分析一下exists真的就比in的效率高吗?
我们先讨论IN和EXISTS。 select * from t1 where x in ( select y from t2 ) 事实上可以理解为: select * from t1, ( select distinct y from t2 ) t2 where t1.x = t2.y; — ...
这是一个老调重弹的例子,也许以前写过这样的笔记,这里再贴出来,是再次感叹于其解决方法的美妙行。判断一个年份是闰年,常见的想法是判断其是否可被4整除,如果是100的倍数,要求其能被400整除。下面是摘自DBA_Village的例子:create or replace function IS_LEAP_YEAR (nYear in number) return boolean is V_REMAINDER1 NUMBER(5,2); V_REMAINDER2 NUMBER(5,2); V_REMAINDER3 NUMBER(5,2); BEGIN V_REMAINDER1 := MOD(nYear, ...
两种方法:1、配置RMAN自动管理ARCHIVELOG。也可在RMAN中将数据备份到磁带上,然后将过期的ARCHIVELOG删除;2、可以手工来处理,步骤如下 1)将/oracle下的相关ARCHIVELOG日志文件移到别的文件系统下(保留一段时间的ARCHIVELOG日志即可,其他的可移走,用系统命令mv移走)。然后打包、压缩,备份到介质上,此时可将这些移出的文件删除。注意:别在原来的/oracle打包了,否则空间占满了就有些麻烦了。 2)以oracle用户登录,执行rman target /。如有多个实例此时执行rman target 用户名/密码@实例名,进入rman 3)在rman ...
在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Instance之类的话。其实问他们什么是数据库,什么是Instance,很可能他们给的答案就是数据库就是Instance,Instance就是数据库啊,没有什么区别。
在这里,只能说虽然他们Oracle用了可能有了一定的经验,不过基础的概念还是不太清楚。
什么是数据库,其实很简单,数据库就是存储数据的一种媒介。比如常用的文件就是一种,在Oracle10G中,数据的存储有好几种。第一种是文件形式,也就是在你的磁盘中创建一批文件,然后在这些文件中存储信息。第二种就是 ...
简单记录一下oracle 分析函数的使用,随用随更新。
1)max(xx) over(partition by xx) /min(xx) over (partition by xx)
scott/tiger连接:
SQL>SELECT emp.*, max(sal) over(partition by deptno) maxsal FROM EMP;
说明:检索员工所在部门的最高工资。
SQL> SELECT emp.*, max(sal) over(partition by deptno) maxsal FROM EMP; EMPNO ENAME JOB ...
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。 Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All:对两个结果集进行并集操作,包括重复行,不进行排序; Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序; Minus:对两个结果集进行差操作 ...
在sqldeveloper中执行procedure时,一定要同时执行以下语句,注意不能先执行打开输出,在运行procedure。
SET SERVEROUTPUT ON;
EXEC PROC_HELLOWORLD;
在sqlplus中则可以分开执行!
本文通过一个最简单的oracle存储过程"proc_helloworld"的实验,展现一下存储过程的开发和维护过程,适合超超超级初学小牛(like me)。1.编写。编写一个最最简单的存储过程,给它起个名字叫做proc_helloworldCREATE OR REPLACE PROCEDURE proc_helloworldISBEGIN
SQL codeConnected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYSSQL> SQL> --1.使用具有dba权限用户如sys创建一个目录,如:SQL> CREATE OR REPLACE DIRECTORY TESTDIR AS 'D:\temp\';Directory createdSQL> --2.将读写访问权限赋给需要操作文件的用户,如test用户:SQL> GRANT READ,WRITE ON DIRECTORY TESTDIR TO ...
同事问我 drop table dept cascade constraints; 这个关键字 cascade constraints
的作用.
应该是在父子表中存在外键关联的时候 drop 父表的时候级联drop 子表的外键.
简单记录了测试过程.
SQL>SQL> create table dept (dept_id number , dept_name
varchar2(20)); Table created SQL> alter table dept add
CONSTRAINTS pk_dept primary key (dept_id); ...
主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。
我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有“订单编号”字段,而这个字段呢在业务实际中本身就是应该具有唯一性,具有唯一标识记录的功能,但我是不推荐采用订单编号字段作为主键的,因为具有实际意义的字段,具有“意义更改”的可能性,比如订单编号在刚开始的时候我们一切顺利,后来客户说“订单可以作废,并重新生成订单,而且订单号要保持原订单号一致”,这样原来的主键就面临危险了。因此,具有唯一性的实际字 ...
首先,举2个简单的例子,简单对比一下这2者的区别。
1.CASE语句:
SELECT CASE SIGN(5 - 5) WHEN 1 THEN 'Is Positive' WHEN -1 THEN 'Is Negative' ELSE 'Is Zero' ENDFROM DUAL;
后台实现: