
数据库相关
log_cd
这个作者很懒,什么都没留下…
展开
-
Oracle常用及非常用函数
注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。 单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。 (一).数值型函数(Number Functions) 数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS,...2008-05-29 14:14:54 · 368 阅读 · 0 评论 -
oracle提高查询效率
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那...原创 2009-01-11 12:59:29 · 78 阅读 · 0 评论 -
oracle查询/子查询/复制表和数据
[b]一、连接查询[/b]1.内连接 内连接用于返回满足连接条件的所有记录。默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询都属于内连接。[code="sql"]SELECT a.dname,b.ename from dept a,emp b where a.deptno=b.deptno and a.deptno=10;[/code] 在...原创 2009-01-11 13:10:58 · 252 阅读 · 0 评论 -
oracle索引与序列
一、索引索引和对应的表应该位于不同的表空间中(primary key (id) using index tablespace mytable_index),oracle能够并行读取位于不同硬盘上的数据,可以避免产生I/O冲突 。B树索引:在B树的叶节点中存储索引字段的值与ROWID。唯一索引和不唯一索引都只是针对B树索引而言。 Oracle最多允许包含32个字段的复合索引。 [b...原创 2009-01-11 14:52:52 · 149 阅读 · 0 评论 -
oracle之spfile与pfile
pfile(Initialization Parameter File)用于Oracle8i,在oracle9i中也可以用,以文本形式存在,可以用文本编辑器对其中参数进行修改。 spfile(Server-Side Initialization Parameter File)用于oracle9i,以二进制文本形式存在,不能用文本编辑器对其中参数进行修改。Spfile改正了pfile管...2009-01-20 15:19:47 · 585 阅读 · 0 评论 -
PL/SQL的异常处理/光标/数据链路/导入导出存储过程
[b]一、PL/SQL的异常[/b][b]1.处理异常:[/b][code="sql"]EXCEPTION WHEN first_exception THEN … WHEN second_exception THEN … WHEN OTHERS THEN /*OTHERS异常处理器必须排在最后,它处理所有没有明确列出的异常。*/ …...原创 2009-06-26 21:57:49 · 109 阅读 · 0 评论 -
oracle blob数据存取
Oracle中的lob (Large Object)可以存储非常大的数据(可能是4GB),这样就可以通过将文件或其它任何对象序列化成字节输出流(OutputStream)后写入数据库,之后使用字节输入流(InputStream)将数据读出然后反序列化为原始文件或对象。操作时需要使用oracle的JDBC包,它扩展了sun的JDBC包中的Blob对象。 以下是一个保存图片进数据库的...原创 2009-06-26 21:58:41 · 205 阅读 · 0 评论 -
java oracle clob
[code="sql"]create table TEST_CLOB( ID INTEGER not null, NAME VARCHAR2(20), CONTENT CLOB)alter table TEST_CLOB add primary key (ID);[/code][code="java"]package com.lo...原创 2009-06-26 21:59:24 · 108 阅读 · 0 评论 -
oracle实例内存(SGA和PGA)调整
[b]一、名词解释[/b](1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。(2)共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括:Library cache(共享SQL区)和Data dictionary ca...原创 2010-01-04 14:24:02 · 941 阅读 · 0 评论 -
oracle 管道化表函数(Pipelined Table)
在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成。REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。 9i 通过引入的管道化表函数纠正了后一种情况。表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样。管...原创 2009-06-18 20:37:24 · 378 阅读 · 0 评论 -
ORACLE批量绑定FORALL与BULK COLLECT
FORALL与BULK COLLECT的使用方法:1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。 2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存。 例子:[code="sql"]create table tes...原创 2009-06-18 20:36:39 · 320 阅读 · 0 评论 -
oracle 统计/分析函数
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。语法:[code="sql"](,,...) over( ) [/code]说明: over是关键字,用于标识分析函数。 是指定的分析函数的名字。 为参数,分析函数可以选...原创 2009-06-09 14:42:29 · 156 阅读 · 0 评论 -
Java程序使用OCI驱动连接Oracle数据库
根据oracle的说法,java程序连接oracle数据库时,用oci驱动要比用thin驱动性能好些。主要的区别是使用thin驱动时,不需要安装oracle的客户端,而使用oci时则要安装oracle的客户端。 从使用thin驱动切换到oci驱动在配置来说很简单,只需把连接字符串java:oracle:thin:@hostip:1521:实例名换为java:oracle:oci@...原创 2009-03-31 08:00:43 · 235 阅读 · 0 评论 -
JDBC驱动类型的区别
[list=1][*]jdbc-odbc桥:将JDBC调用转换到ODBC调用。 [*]本地api驱动:将JDBC调用转换到特定的DBMS调用。 [*]网络协议驱动:将JDBC调用转换成与DBMS无关的网络协议,然后再转换成特定的DBMS协议。 [*]本地协议驱动:将JDBC调用直接转换成特定DBMS协议。 [/list][b]一、jdbc-odbc桥[/b] ...原创 2009-03-31 08:31:07 · 186 阅读 · 0 评论 -
Oracle数据导入导出imp/exp命令和grant命令
[b]一、数据导入导出命令[/b] Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, D...原创 2009-04-02 12:17:27 · 1823 阅读 · 0 评论 -
Oracle格式化函数
格式化函数 函数 返回类型 描述 例子 to_char(timestamp, text) text 把时间戳转换成字串 to_char(current_timestamp, 'HH12:MI:SS') to_char(interval, text) text 把时间间隔转为字串 to_char(int...原创 2009-04-02 14:52:15 · 140 阅读 · 0 评论 -
PL/SQL集合类型
PL/SQL集合类型是类似于高级语言数组的一种复合数据类型,集合类型包括索引表(PL/SQL表)、嵌套表(Nested Table)和变长数组(VARRAY)三种类型。[b]、索引表[/b] 索引表也称为PL/SQL表,它是Oracle早期版本用于处理PL/SQL数组的数据类型。索引表的元素个数没有限制,并且下标可以为负值。注意,索引表只能作为PL/SQL复合数据类型使用,而...原创 2009-11-20 13:57:47 · 161 阅读 · 0 评论 -
PL/SQL开发中动态SQL的使用与过程分页
在Oracle数据库开发PL/SQL块中我们使用的SQL分为:静态SQL语句和动态SQL语句。所谓静态SQL指在PL/SQL块中使用的SQL语句在编译时是明确的,执行的是确定对象。而动态SQL是指在PL/SQL块编译时SQL语句是不确定的,如根据用户输入的参数的不同而执行不同的操作。编译程序对动态语句部分不进行处理,只是在程序运行时动态地创建语句、对语句进行语法分析并执行该语句。 ...原创 2009-06-01 11:45:33 · 101 阅读 · 0 评论 -
oracle存储过程与函数基础
[b]一、过程(PROCEDURE )[/b] 过程是作为一个单独的程序编译到Oracle数据库模式中的。过程能够接收参数。在编译过程时,Create Procedure语句的过程标识符在数据字典中成为对象名。过程结构如下: CREATE OR REPLACE PROCEDURE 过程名 (可选参数) IS 声明部分 BEGIN...2008-12-07 23:28:56 · 123 阅读 · 0 评论 -
简单SQL 性能的优化
1.1 IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用 多个表的连接方式查询。 由此可...原创 2008-12-16 12:28:17 · 84 阅读 · 0 评论 -
Oracle Errors收集
[b]一、ORA-01652无法通过128(在temp表空间中)扩展temp段[/b] 指temp表空间无法自动扩展temp段。一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。[b]二、ORA-01658无法为表空间中的段创建initial区[/b] 在导数据,创建表时报。主要原因是建立的表空间不够。解决:(1)使用oracle ...原创 2010-05-23 23:21:08 · 200 阅读 · 0 评论