`
sangei
  • 浏览: 329380 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
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

pl/sql操作xml

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; 后台实现:
Global site tag (gtag.js) - Google Analytics