异常分为预定义异常和用户自定义异常。 预定义异常是由系统定义的异常。由于它们已在standard包中预定义了,因此,这些异常可以直接在程序中使用,而不必在定义部分声明。 用户自定义异常则需要在定义部分声明后才能在可执行部分使用。用户自定义异常对应的错误不一定是oracle异常,例如,它可能是一个数据错误。 1、预定义异常 常见的预定义异常... --下面的块中产生一个NO_DATA_FOUND异常: delcare type t_numbertabletype is table of number index by binary_integer; v_numbertable t_n ...
  • 21:40
  • 浏览 (584)
  • 评论 (0)
  • 分类: db
包可将一些有联系的对象放在其内部。任何能在块定义部分出现的对象都可以在包中出现。这些对象包括存储过程、函数、游标、自定义的类型(例如PL/SQL表和记录)和变量。 我们可以在其它的PL/SQL块中引用包中的这些对象。也就是说,包为PL/SQL提供了全局变量。 1、包的定义 一个包由两个独立的部分组成---包头和包体。各部分被单独地存放在数据字典中。定义一个包,要分别定义包头和包体。 (1)定义包头 存储过程或函数必须在包头中预定义。也就是说,在包头中仅定义存储过程名或函数名以及它们的参数。存储过程或函数的执行代码将在包体中定义。这不同于无名块中定义存储过程和函数。 create or repl ...
  • 20:10
  • 浏览 (681)
  • 评论 (0)
  • 分类: db
存储过程与函数 1、存储过程 存储过程的参数 形式参数和实际参数,例如,有如下一个存储过程,该过程接收一个作家代码和一个工资值,将该作家的工资改为接收到的工资值。 create or replace procedure updateauths( p_authscode auths.author_code%type, p_authssalary auths.salary%type) as begin update auths set salary=p_authssalary where author_code=p_authscode; commit; end up ...
  • 22:24
  • 浏览 (973)
  • 评论 (0)
  • 分类: db
游标 环境区域是用来处理SQL语句的一个oracle存储区域。游标是指向它的指针或句柄。通过游标,PL/SQL程序可以控制这个环境区域中被处理的语句。 Oracle中的游标有两种:显式游标、隐式游标。 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理,而隐式游标是在执行插入(insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。 1、显式游标操作 显式游标在块定义部分、包或子程序中声明。当声明了显式游标后,可以通过以下三条命令控制显式游标的操作:打开游标、推进游标、 ...
  • 21:42
  • 浏览 (898)
  • 评论 (0)
  • 分类: db
PL/SQL中的流控制语句 选择控制语句(IF语句) 循环控制语句(LOOP语句和EXIT语句) 顺序控制语句(GOTO语句和NULL语句) 1、选择控制语句 if...then if 条件 then 语句; end if; if...then...else if...then...elsif 2、循环控制语句 LOOP WHILE...LOOP FOR...LOOP (1)LOOP EXIT语句可以在LOOP语句中出现多次,但不可以在LOOP语句外使用。有两种格式的EXIT语句: EXIT:无条件地强迫终止循环;EXIT...WHEN:根据条件的值来终止 ...
  • 21:39
  • 浏览 (625)
  • 评论 (0)
  • 分类: db
PL/SQL(Procedural Language/SQL)是在标准SQL的基础上增加了过程化处理的语言,是Oracle对SQL的扩充。 SQL(Structured Query Language)是一种对关系数据库管理系统(RDBMS)进行操作的标准结构化语言,它用来设置、使用和维护关系数据库。 PL/SQL正是一种增加了过程化概念的SQL语言,它有以下一些标准SQL所没有的特征: 变量(包括预先定义的和自定义的)、控制结构(IF-THEN-ELSE)、自定义的存储过程和函数、对象类型 PL/SQL特性 1、块结构 块是PL/SQL程序的基本执行单元,所有的PL/SQL程序 ...
  • 22:17
  • 浏览 (532)
  • 评论 (0)
  • 分类: db
create or replace procedure GetRecords(name_out out varchar2,age_in in varchar2) as begin select NAME into name_out from test where AGE = age_in; end; create or replace procedure insertRecord(UserID in varchar2, UserName in varchar2,UserAge in varchar2) is begin insert into test valu ...
  • 08:41
  • 浏览 (627)
  • 评论 (0)
  • 分类: db
  LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列   LONG RAW: 可变长二进制数据,最长2G   CLOB: 用来存储单字节的字符数据   NCLOB: 用来存储多字节的字符数据   BLOB: 用于存储二进制数据   BFILE: 存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。      CLOB,NCLOB,BLOB都是内部的LOB(Large Object)类型,最长4G,没有 LONG只能有一列的限制   我要保存图片、文本文件、Word文件各自最好用哪种数据类型? ...
  • 10:42
  • 浏览 (1108)
  • 评论 (0)
  • 分类: db
这里打个比方,有个表usertable中有一个clob字段content, select * from usertable t where t.content like '%130%' 比方说content字段中只有这么有三个这样的数据:"130478569","14852130455","45887744130" 如果在oracle10上面运行上面的sql语句将正常,会显示所有的数据, 但是在oracle9i上进行只显示"14852130455"...
在本机上有个oracle9i客户端, 在本机上执行以下命令 exp userid=用户名/@本机IP:1521:orcl file=c:\temp.dmp 可以备份成功 但是在用oracle10用上面的命令老是出错 用下面才可以, exp 用户/密码@IP file=c:\temp.dmp
  • 11:06
  • 浏览 (380)
  • 评论 (0)
  • 分类: db
摘自oracle的电子杂志: 引用执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。 然而,在Oracle环境中,开发人员实际上有更大的灵活性。当使用Statement或PreparedStatement对象时,Oracle数据库会缓存SQL语句以便以后使用。在一些情况下,由于驱动器自身需要 ...
  • 14:45
  • 浏览 (395)
  • 评论 (2)
  • 分类: db
oracle sql语句优化(转载) http://www.blogjava.net/killme2008/archive/2007/03/02/101434.html (1) 选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) : ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名, FROM 子句中写在最后的表 ( 基础表 driving table) 将被最先处理,在 FROM 子句中包含多个表的情况下 , 你必须选择记录条数最少的表作为基础表。如果有 3 个以上的表连接查询 , 那就需要选择交叉表 (intersection table) 作为基 ...
  • 15:33
  • 浏览 (321)
  • 评论 (0)
  • 分类: db
qiuyuanshan
搜索本博客
最近加入圈子
存档
最新评论