oracle基础
文章平均质量分 77
oracle数据库基础
塔山上的山
这个作者很懒,什么都没留下…
展开
-
oracle 11g日志路径
oracle 下的alert日志$ORACLE_BASE/diag/rdbms/orcl/orcl1/trace/alertorcl1.loggrid 下的 alert 日志 $ORACLE_HOME/log/rac1/alertrac1.logcss的日志$ORACLE_HOME/log/rac1/cssd/cssd.log ocssd.logcrs的日志$ORACLE_HOME/log/rac1/crsd/crsd.logohas的日志$ORACLE_HOME/log/rac1/oha.转载 2021-03-15 16:32:21 · 643 阅读 · 0 评论 -
使用EXPLAIN PLAN获取SQL语句…
使用EXPLAIN PLAN获取SQL语句执行计划转自:http://blog.csdn.net/leshami/article/details/6837771SQL语句的性能从一定程度上影响整个数据库的性能。很多情况下,数据库性能的低下差不多都是不良SQL语句所引起。而SQL语句的执行计划则决定了SQL语句将会采用何种方式从数据库提取数据并返回给客户端,本文描述的将是如何通过EXPL原创 2014-11-25 18:13:30 · 585 阅读 · 0 评论 -
PL/SQL 游标变量
PL/SQL 游标变量转自:http://blog.csdn.net/leshami/article/details/7623525游标变量与游标相似,有其共性,也有其不同点。就其共性来说两者都是指向多行查询的结果集中的当前行。都要经历声明,打开,检索与关闭的过程。所不同的是游标与游标变量类似于常量与变量。游标是静态的,而游标变量是动态的,因为游标变量并不固定于某个特定的查询。所以原创 2014-11-25 18:13:27 · 650 阅读 · 0 评论 -
PL/SQL 包编译时hang住的处理
PL/SQL 包编译时hang住的处理转自:http://blog.csdn.net/leshami/article/details/7616923最近PL/SQL包在编译时被hang住,起初以为是所依赖的对象被锁住。结果出乎意料之外。下面直接看代码演示。1、在SQL*Plus下编译包时被hang住 SQL> alter package bo_syn_data_pk原创 2014-11-25 18:13:24 · 743 阅读 · 0 评论 -
动态性能视图v$mystat,v$sesstat,v…
动态性能视图v$mystat,v$sesstat,v$statname学习转自:http://hi.baidu.com/johny666/item/6527e7ec052261b42e140b6e为了学习如何得到sql产生的redo信息,在网上查询到结果得出需对v$mystat,v$sesstat,v$statname视图进行操作,现在心得写出如下:1.v$mystat,v$sess原创 2014-11-25 18:13:22 · 594 阅读 · 0 评论 -
PL/SQL嵌套记录与记录集合
PL/SQL嵌套记录与记录集合转自:http://blog.csdn.net/leshami/article/details/7569673将多个逻辑上不相关列组合到一起形成了PL/SQL的记录类型,从而可以将记录类型作为一个整体对待来处理。而且PL/SQL记录类型可以进行嵌套以及基于PL/SQL记录来定义联合数组,嵌套表等。本文首先回顾了PL/SQL记录的几种声明形式,接下来主要描述原创 2014-11-25 18:13:19 · 357 阅读 · 0 评论 -
PL/SQL如何输出布尔型
PL/SQL如何输出布尔型转自:http://blog.csdn.net/leshami/article/details/7549813布尔类型是PL/SQL数据类型的一种,能存储逻辑值TRUE、FALSE。只有逻辑操作符才允许应用在布尔变量上。数据库 SQL 并不支持布尔类型,只有PL/SQL才支持。所以不能往数据库中插入或从数据库中检索出布尔类型的值。下面描述了布尔型的声明、赋值以原创 2014-11-25 18:13:17 · 1418 阅读 · 0 评论 -
批量SQL之BULK COLLECT子句
批量SQL之BULK COLLECT子句转自:http://blog.csdn.net/leshami/article/details/7545597BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎。通常可以在SELECT INTO、FETCH INTO以及RETURNING INTO子句中使用BULK COLLEC原创 2014-11-25 18:13:14 · 463 阅读 · 0 评论 -
批量SQL之FORALL 语句
批量SQL之FORALL 语句转自:http://blog.csdn.net/leshami/article/details/7536926对PL/SQL而言,任何的PL/SQL块或者子程序都是PL/SQL引擎来处理,而其中包含的SQL语句则由PL/SQL引擎发送SQL语句转交到SQL引擎来处理,SQL引擎处理完毕后向PL/SQL引擎返回数据。Pl/SQL引擎与SQL引擎之间的通信则原创 2014-11-25 18:13:11 · 413 阅读 · 0 评论 -
PL/SQL 集合的方法
PL/SQL 集合的方法转自:http://blog.csdn.net/leshami/article/details/7529361PL/SQL中提供了常用的三种集合联合数组、嵌套表、变长数组,而对于这几个集合类型中元素的操作,PL/SQL提供了相应的函数或过程来操作数组中的元素或下标。这些函数或过程称为集合方法。一个集合方法就是一个内置于集合中并且能够操作集合的函数或过程,可以通过点标原创 2014-11-25 18:13:09 · 384 阅读 · 0 评论 -
PL/SQL 集合的初始化与赋值
PL/SQL 集合的初始化与赋值转自:http://blog.csdn.net/leshami/article/details/7525891对于集合类型,与单一的数据类型相比较而言,应该以一个整体的观念来考虑集合,即是一批类型相同的数据组合而非单一的数据。因此集合类型集合的声明、赋值、初始化较之单一类型而言,有很大的不同。尤其是嵌套表与变长数组,在赋值之前必须先初始化。当嵌套表和变长原创 2014-11-25 18:13:01 · 526 阅读 · 0 评论 -
PL/SQL变长数组
PL/SQL变长数组转自:http://blog.csdn.net/leshami/article/details/7387647PL/SQL变长数组是PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的。也即是说变长数组的下标固定下限等于1,上限可以扩展。下面给出具体的描述及其使用方法。一、变长数组语法原创 2014-11-25 18:12:55 · 398 阅读 · 0 评论 -
PL/SQL 联合数组与嵌套表
PL/SQL 联合数组与嵌套表转自:http://blog.csdn.net/leshami/article/details/7372061 通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。单列多行数据则由联合数组或嵌套表来完成,其特点是类似于单列数据库表。在Oracle 9i 之前称为PL/SQL索引表,9i原创 2014-11-25 18:12:53 · 438 阅读 · 0 评论 -
当心 CREATE TABLE AS
当心 CREATE TABLE AS转自:http://blog.csdn.net/leshami/article/details/7362156 对 DBA而言,CREATE TABLE AS可谓是家常便饭,顺手拈来。殊不知该方式虽然简单,但疏忽也容易导致意想不到的问题。笔者前阵子就碰上了这样的事情。 由于是对原表进行克隆,且数据存储在不同的表空间,因此毫不犹豫地使用了原创 2014-11-25 18:12:50 · 338 阅读 · 0 评论 -
CASE语句与CASE表达式
CASE语句与CASE表达式转自:http://blog.csdn.net/leshami/article/details/7340187case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆。本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项。一、简单case语句-->语法CASE SELE原创 2014-11-25 18:12:48 · 848 阅读 · 0 评论 -
查看PL/SQL编译时的错误信息
查看PL/SQL编译时的错误信息转自:http://blog.csdn.net/leshami/article/details/6913026编译无效对象是DBA与数据库开发人员常见的工作之一。对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法。一、当前数据库版本信息及无效对象1、查看当前数据库版本SQL> select * from v$version;BANN原创 2014-11-25 18:12:45 · 1272 阅读 · 0 评论 -
SQL基础-->NEW_VALUE 的使用
SQL基础-->NEW_VALUE 的使用通常的使用方法为:column column_name new_value var_namenew_value是将所获得的列值赋予到变量名,然后该变量名可以参与后续处理下面演示new_value的用法usr1@ORCL> definelength="15" --定义变量lengthusr1@ORCL> set feedbac原创 2014-11-25 18:12:42 · 457 阅读 · 0 评论 -
PL/SQL --> 动态SQL
PL/SQL --> 动态SQL使用动态SQL是在编写PL/SQL过程时经常使用的方法之一。很多情况下,比如根据业务的需要,如果输入不同查询条件,则生成不同的执行SQL查询语句,对于这种情况需要使用动态SQL来完成。再比如,对于分页的情况,对于不同的表,必定存在不同的字段,因此使用静态SQL则只能针对某几个特定的表来形成分页。而使用动态的SQL,则可以对不同的表,不同的字段进行不同的分页。这些原创 2014-11-25 18:12:40 · 549 阅读 · 0 评论 -
PL/SQL-->动态SQL的常见错误
PL/SQL-->动态SQL的常见错误 动态SQL在使用时,有很多需要注意的地方,如动态SQL语句结尾处不能使用分号(;),而动态PL/SQL结尾处需要使用分号(;),但不能使用正斜杠结尾(/),以及schema对象不能直接作为变量绑定。本文介绍了动态SQL的常见问题。 一、演示动态SQL的使用 下面的示例中,首先使用动态SQL基于scott.emp创建表tb2,然后直原创 2014-11-25 18:12:29 · 1153 阅读 · 0 评论 -
PL/SQL开发中动态SQL的使用方法
PL/SQL开发中动态SQL的使用方法内容摘要:在PL/SQL开发过程中,使用SQL,PL/SQL可以实现大部分的需求,但是在某些特殊的情况下,在PL/SQL中使用标准的SQL语句或DML语句不能实现自己的需求,比如需要动态建表或某个不确定的操作需要动态执行。这就需要使用动态SQL来实现。本文通过几个实例来详细的讲解动态SQL的使用。 本文适宜读者范围:Oracle初级,中级原创 2014-11-25 18:12:27 · 350 阅读 · 0 评论 -
oracle绑定变量
oracle绑定变量在oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的门闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行),而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为原创 2014-11-25 18:12:21 · 494 阅读 · 0 评论 -
PL/SQL Developer 常用技巧
PL/SQL Developer 常用技巧1、PL/SQL Developer记住登陆密码在使用PL/SQL Developer时,为了工作方便希望PL/SQLDeveloper记住登录Oracle的用户名和密码;设置方法:PL/SQL Developer7.1.2->tools->Preferences->Oracle->LogonHistory,“Store history”是原创 2014-11-25 18:12:19 · 1146 阅读 · 0 评论 -
常用的PL/SQL开发原则
[转]常用的PL/SQL开发原则(1)广泛使用绑定变量,特别是批量绑定,因为这可以有效的避免sql的硬解析和PL/SQL引擎和SQL引擎的上下文切换!(2)广泛使用ROWID来处理DML语句(3)在你的存储过程中谨慎使用DDL语句,因为这可能会破坏你的transaction的连续性,更为严重的是可能会阻塞DML操作并可能会导致大量library cachelatch争用并且有可能会原创 2014-11-25 18:12:16 · 435 阅读 · 0 评论 -
ORACLE 绑定变量用法总结
之前对ORACLE中的变量一直没个太清楚的认识,比如说使用:&、&&、DEFINE、VARIABLE……等等。今天正好闲下来,上网搜了搜相关的文章,汇总了一下,贴在这里,方便学习。==================================================================================在oracle 中,对于一个提交的sql语句原创 2014-11-25 18:12:13 · 1075 阅读 · 0 评论 -
oracle中的sequence
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限CREATE SEQUENCE emp_seq INCREMENT BY1 -- 每次加几个 START WIT原创 2014-11-25 18:11:55 · 375 阅读 · 0 评论 -
动态sql 和静态sql 下篇
动态sql 和静态sql 下篇1、批量绑定让oracle在对一组值进行sql操作时绑定一个变量,这一组数据可以是任何的plsql的聚合类型(联合数组,内嵌表,可变数组),集合元素必须是sql的数据类型,比如char date mumber。有三个句法支持动态批量绑定,EXECUTE IMMEDIATE, FETCH , FORALL;EXECUTE IMMEDIATE: 你可以用BU原创 2014-11-25 18:11:52 · 405 阅读 · 0 评论 -
动态sql 和静态sql 上篇
动态sql 和静态sql 上篇本文讲解基于Oracle高性能动态SQL程序开发。1.静态SQL与动态SQL:Oracle编译PL/SQL程序块分为两种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入原创 2014-11-25 18:11:50 · 377 阅读 · 0 评论 -
Application developer's guide
Application developer's guide声明游标:1、每一个游标都需要虚拟内存空间,所以每个会话的游标数量上限是根据内存可用量来决定的(虽然在这里没有绝对的强调说你必须声明几个以内)2、对每一个会话,全系统的限制由初始化参数(名字叫open_cursors)设定。这个参数存在于参数文件中。如:init.ora。。。明确的创建一个游标对于预编译一个程序提供了很多的好原创 2014-11-25 18:11:45 · 355 阅读 · 0 评论 -
数据库设计基础——三范式
数据库设计基础——三范式书上讲了好多, 归结起来3句话:1NF:字段不可分;2NF:有主键,非主键字段依赖主键;3NF:非主键字段不能相互依赖;解释:1NF:原子性 字段不可再分,否则就不是关系数据库;2NF:唯一性 一个表只说明一个事物;3NF:每列都与主键有直接关系,不存在传递依赖;不符合第一范式的例子(关系数据库中create不出这样的表):表:字段1, 字段2原创 2014-11-25 18:11:42 · 305 阅读 · 0 评论 -
PL/SQL-->INSTEAD OF 触发器
PL/SQL-->INSTEAD OF 触发器 INSTEAD OF触发器常用于管理不可更新的视图,INSTEAD-OF触发器必须是行级的。 可以用INSTEADOF触发器来解释INSERT、UPDATE和DELETE语句,并用备用的程序代码替换那些指令。一、不可更新视图 基于下列情形创建的视图,不可直接对其进行DML操作 使用了集合操作运算符(原创 2014-11-25 18:10:55 · 362 阅读 · 0 评论 -
PL/SQL-->DML 触发器
PL/SQL-->DML 触发器 何谓触发器?简言之,是一段命名的PL/SQL代码块,只不过该代码块在特定的条件下被触发并且执行。对于这样的代码我们称之为触发器。触发器根据触发类型的不同又分为不同级别的触发器,下面将给出触发器的分类,定义,以及使用的示例。 一、触发器的相关概念 1.触发器的分类 通常根据触发条件以及触发级别的不同分为DML触发器,IN原创 2014-11-25 18:10:52 · 456 阅读 · 0 评论 -
PL/SQL-->DBMS_DDL包的使用
PL/SQL-->DBMS_DDL包的使用 为了便于建立性能良好的PL/SQL程序,Oracle提供了大量的系统包供使用。Oracle提供的这些包扩展并增强了数据库的一些功能,以及突破了PL/SQL的一些限制。 本文讲述了Oracle提供的包DBMS_DDL,以及其使用方法。一、 使用DBMS_DDL包可以对包,包体,存储过程,函数,触发器等等进行编译,以及为数据库原创 2014-11-25 18:10:50 · 487 阅读 · 0 评论 -
PL/SQL-->包重载、初始化
PL/SQL-->包重载、初始化 包的重载功能类似于C中函数的重载功能,即拥有多个同名的子程序,每个同名子程序使用不同的参数。用户可以传递不同的参数来调用同名但参数不同的子程序,此即为包的重载功能。 简言之,不管传递什么样的参数,所完成的任务是相同的。假定需要查询部门所在的位置,输入参数部门编号或部门名称都会返回同样的结果。对外部程序而言,似乎是调用的同一个子程序,但其实质是调原创 2014-11-25 18:10:37 · 474 阅读 · 0 评论 -
PL/SQL-->包的创建与管理
PL/SQL-->包的创建与管理 包,是一个逻辑集合,是PL/SQL类型、PL/SQL项以及PL/SQL子程序的集合。PL/SQL类型包括table类型,record类型。PL/SQL项则包括游标,游标变量。PL/SQL子程序包括过程,函数等。可以说包可谓是包罗万象。包是所有PL/SQL相关资源的汇总。 包的使用可以简化应用程序设计,实现信息掩藏,子程序重载等功能。原创 2014-11-25 18:10:34 · 436 阅读 · 0 评论 -
PL/SQL-->PL/SQL记录
PL/SQL-->PL/SQL记录 PL/SQL记录有着类似于表的数据结构,是一个或多个字段且拥有数据类型的集合体。定义了PL/SQL记录类型之后,可以定义PL/SQL记录变量。 声明一个PL/SQL记录变量相当于定义了多个标量变量,简化了变量的声明,从而大大节省了内存资源。 PL/SQL记录多用于简化单行多列的数据处理。一、定义PL/SQL记录 1.直原创 2014-11-25 18:10:32 · 353 阅读 · 0 评论 -
PL/SQL-->异常处理(Exception)
PL/SQL-->异常处理(Exception) Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引入异常处理部分,进行捕捉异常,并根据异常出现的情况进行相应的处理。一、异常的类型 ORACLE异常分为两种类型:系统异常、自定义异常。 其中系统异常又分为:预定义异常和原创 2014-11-25 18:10:29 · 549 阅读 · 0 评论 -
PL/SQL-->隐式游标(SQL%FOUND)
PL/SQL-->隐式游标(SQL%FOUND) 在PL/SQL中,游标的使用分为两种,一种是显式游标,一种是隐式游标,显式游标的使用需要事先使用declare来进行声明,其过程包括声明游标,打开游标,从游标提取数据,关闭游标。 显式游标多用于处理select语句返回的多行数据的情形。 隐式游标则由则由系统自动定义,当使用DML时,Oracle为每一个不属于显式游标的DM原创 2014-11-25 18:10:26 · 488 阅读 · 0 评论 -
PL/SQL-->游标
PL/SQL-->游标一、游标的相关概念及特性 1.定义 映射在结果集中某一行数据的具体位置,类似于C语言中的指针。即通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作。 2.游标的分类 显式游标:即用户自定义游标,专门用于处理select语句返回的多行数据 隐式游标:系统自动定义的游标,记原创 2014-11-25 18:10:14 · 482 阅读 · 0 评论 -
PL/SQL-->函数
PL/SQL-->函数 函数通常用于返回特定的数据,其实质是一个有名字的PL/SQL块,作为一个schema对象存储于数据库,可以被反复执行。 函数通常被作为一个表达式来调用或存储过程的一个参数,具有返回值。一、建立函数的语法 CREATE [ ORREPLACE ] FUNCTION function_name (argument1 [mode1原创 2014-11-25 18:10:12 · 490 阅读 · 0 评论 -
PL/SQL-->存储过程
PL/SQL-->存储过程 存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库。它是一个有名字的PL/SQL代码块,可接受参数也可不接受参数,同时也支持参数输出。一个存储过程通常包含定义部分,执行部分,Exception部分,可以被其他子程序调用,也可以被重用。一、过程定义 CREATE [OR REPLACE]PROCEDURE proce原创 2014-11-25 18:10:09 · 379 阅读 · 0 评论