PL/SQL 训练07--发现问题】的更多相关文章

--程序员在开发的时候,经常天真的认为这个世界是完美的,用户如同自己般聪明,总能按照自己设想的方式--操作系统输入数据.但残酷的事实告诉我们,这是不可能的事情,用户总会跟我们相反的方式操作系统--于是,无数的问题砸向我们.--那么怎么办呢?---PL/SQL提供了强大.灵活的错误捕获和处理方法,这节课我们来领略她的风采--什么是异常?先看一个例子 DECLARE V_DIV ; V_NUM ; BEGIN DBMS_OUTPUT.put_line(V_DIV/V_NUM); END ; / --…
--数据缓存技术 --PGA和SGA---SGA:系统全局区域--PGA:Process Global Area是为每个连接到Oracle的用户进程保留的内存. ---PLSQL从PGA获取信息的速度要比从SGA快--基于PGA的缓存为改善性能提供了许多有趣的机会 --基于包的缓存--基于包的缓存使用的是包级别的一个或多个变量,而不是在包中子程序的任何子程序里声明的变量--包级别的数据会一直存在于会话的整个生命期--如果在包级别声明了一个变量,一旦给这个变量赋了值,就会一直保持这个值,直到断开连…
--什么是动态SQL?动态PL/SQL--动态SQL是指在运行时刻才构建执行的SQL语句--动态PL/SQL是指整个PL/SQL代码块都是动态构建,然后再编译执行 --动态SQL来可以用来干什么? --执行DDL语句 --支持WEB引用的即席查询和即席更新需求 --软编码的业务规则和公式 --先来看dbms_sql包的使用 DECLARE v_cur number; v_sql ); v_result number; BEGIN v_cur := dbms_sql.open_cursor; v_…
--所谓包,就是把一组PL/SQL的代码元素组织在一个命名空间下.--一种可以把程序或者其他的PL/SQL元素比如游标.类型.变量的组织结构在一起的结构(包括逻辑结构和物理结构)--包提供了非常重要的.独一无二的功能,包括隐藏逻辑或者隐藏数据的功能,以及定义和操作“全局”或者--会话持久数据的能力 --可以更容易地增强以及管理应用程序--整体改善应用程序性能 --改善应用或者内置的薄弱环节 --代码重新编译的需求最小化 --包的演示 --包由两个代码块组成的:规范部分(必须的)和包体部分(可选的…
多数程序只需要通过SQL和底层数据库进行交互--有些情况,不可避免的还是会有一些场景,需要从PL/SQL给外部环境发送信息--或是从一些外部的源读入信息 --这节课介绍下面这些内置包 dbms_output;--用于在屏幕上显示信息utl_file ;-- 用于读取以及写入操作系统的文件 --显示信息 --oracle提供了dbms_output包,可以利用它来把信息从程序传到一个缓存中--然后这个缓存可以被其它的PLSQL程序或者被宿主环境读取和操作 --每个用户的会话都会有一个预定大小的DB…
--什么是触发器呢?--一触即发,某个事件发生时,执行的程序块?--数据库触发器是一个当数据库发生某种事件时作为对这个事件的响应而执行的一个被命名的程序单元 --适合场景--对表的修改做验证--数据库的自动维护--通过不同粒度落实数据库活动的管理规则 --ORACLE中有五种不同类型的事件可以挂载触发器代码 --数据操作语句DML:数据表的增删改--数据定义语句DDL:比如创建表,索引--数据库事件:数据库启动或者关闭时触发--INSTEAD OF:替代触发器,实际上是DML触发器的替代品,是在…
--隐式游标--通过一个简单的SELECT ...INTO 语句提取一行数据,并放在一个局部变量中,最简单获取数据的途径 --显示游标--可以在声明单元明确的声明一个查询,这样可以在一个或多个程序中打开游标并且提取数据 --游标变量--使用游标变量,可以把指向一个查询结果集的指针从一个程序传递到另一个程序,灵活度较高--任何程序只要能访问这个变量,就可以打开这个游标,提取数据,关闭游标 --游标表达式--CURSOR表达式可以把一个SELECT 语句转换成REF CURSOR结果集,可以用于--…
--pl/sql通过SQL和ORACLE数据库紧密的整合在一起--在pl/sql中可以执行任何操作语句(DML语句),包括INSERT,UPDATE,DELETE,MERGE,也包括查询语句--可否执行DDL语句呢?--不可以直接执行,但可以通过动态SQL的方式执行,关于动态SQL,后面课程会专门拿一节课来讲 --事务的ACID原则:原子性,一致性,隔离性,持久性 --原子性:事务所涉及的改变是原子的:这些改变或者全部发生或者全部不发生 --一致性:一个事务必须是一个正确的状态转换.事务中发生的…
1. 请列举关联数组.嵌套表.VARRAY三种集合类型的区别区别:1 关联数组只能在plsql中使用,嵌套表,varray可用于sql中,数据库表中的列2 嵌套表,varray必须在使用的时候初始化,关联数组在声明时自动完成3 关联数组是稀疏的,varray是紧凑的,嵌套表开始是紧凑的,删除了其中的元素就不是了4 嵌套表可以比较是否相等,关联数组.varray不行5 关联数组无界,varray是有界的,嵌套表可以扩展6 如果想在一个集合列中保存大量持久数据,唯一的选择就是嵌套表,数据库会在幕后用…
--开始介绍变量之前,我们先看下怎么在PLSQL写程序,如下我们写了一个块 declare --声明部分,声明变量 v_name ) :='hello world'; begin --执行区域 dbms_output.put_line(v_name);--如果使用SQL*PLUS,需要先执行set SERVEROUTPUT ON SIZE XXXXXX 才能显示打印信息 exception when others then null ; --异常处理区域 end ; --结束符 / --以上是一…
---对象基本声明.实现.使用--对象类型,类似与JAVA中的类,通俗的讲,就是捆绑了相关函数和过程的记录类型. ---对象声明 --create type 创建一个对象类型的规范部分 create or replace type hello_object as object ( obj_name ), constructor function hello_object return self as result, constructor function hello_object(obj_na…
drop table ma_schedue_task ; ---test_task(:1,:2) create table ma_schedue_task( created_by ) default 'system' not null, created_date date default sysdate not null, updated_by ) default 'system' not null, updated_date date default sysdate not null, id_…
现在需要做一个任务调度,请大家设计,满足以下需求(1)任务可配置,比如可以配置PKG方法TEST_PROCEDURE(:1,:2...),可以是任意多个入参的方法,也可以没有入参(2)每个方法的实际参数可配置,每次运行方法传进方法的相应参数值可能不一样(但参数个数是一样的)(3)配置的任务可以隔一段时间执行一次,比如每隔N个小时,或者N天,或者N个月,或者N年(4)(选做)考虑每个任务可以配置线程数,每次可以根据线程数启用相应的多任务进行调度(可使用JAVA) ---- --(1)任务可配置,比…
以前用PL/SQL Developer 7.0版本,最近升级到PL/SQL Developer 11.0版本,但每次启动PL/SQL Developer都会自动弹出Logon窗口,并且选中其中的登录历史(已经设置自动保存密码)之后,还需要重新输入密码,挺麻烦的 后来找到了解决办法,如下(Win7系统): 找到PL/SQL Developer的配置文件缓存目录,C:\Users\${Administrator}\AppData\Roaming\PLSQL Developer\Preferences…
PL/SQL不仅可以连接本机的oracle数据库.也可以连接远程的数据库. 需要修改一个文件:在本机oracle 数据库的安装目录下找到这个文件: /oracle/ora92/network/admin/tnsnames.ora 加入如下代码: test = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS )) ) (CONNECT_DATA = (SERVICE_NAME = username) ) ) 再次启动PL/SQL便会发现选择数据库实例的地方多了一个t…
最近刚开始用PL/SQL,然后发现写SQL语句时,运行的时候,会对表中的字段报错. 好像是对字段的使用有问题 原来写的错误代码大概像这样 DECLARE xuehao XSB.id% TYPE; BEGIN SELECT id INTO xuehao FROM xsb WHERE name = '小明'; DBMS_OUTPUT.PUT_LINE(xuehao); END; / 然后就,报了好多错啊!! 这是用PL/SQL写的,感觉不咋地,所以我又换了Navicat Premium,再写的时候会…
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点.本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的…
-----------------------------Cryking原创------------------------------ -----------------------转载请注明出处,谢谢!------------------------ 并行处理能大大提高数据的处理速度,它依赖于硬件资源.网络资源等环境. 并行处理的硬件资源环境分为5大类: 1.传统的单台计算机.单处理器.单内核的机器.(无法进行并行处理,但是并行程序还是可以运行的,此时就和普通程序一样了) 2.单台计算机.单…
原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ——通过知识共享树立个人品牌. 继上五篇: [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不…
原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)                [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]…
原帖地址:http://blog.csdn.net/chenjinping123/article/details/8737604 ORACLE PL/SQL编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对Oracle数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在oracle数据库…
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构,可用于创建存储过程.触发器和程序包,给SQL语句的执行添加程序逻辑,与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性.灵活性和安全性.   PL/SQL 的优点 支持 SQL,在 PL/SQL 中可以使用: 1.数据操纵命令 2.事务控制命令 3.游标控制…
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQL程序设计终极指南>志在打造PL/SQL领域最为系统.全面.实战.权威的著作,通过一系列非常突出的优势在大量的同类书中脱颖而出,成为该领域的标准读物. PL/SQL本身涉及的知识点浩瀚.庞杂,初学者根本无法依靠自身能力理清头绪,学习成本极高.本书对知识点进行了体系化的梳理,化繁杂为有序,突出重点,直指核…
项目中有个需要需要如下pl/sql(数据库是MariaDB) ) AS small FROM cmp_ent_main a WHERE createTime<'2016-9-21' ,,) ) ; 执行时发现耗时近50秒,这是测试环境啊, 表cmp_ent_main,pk是id,有74836条记录:表cmp_ent_service_config,pk是entId和serviceType,有2254条记录,并不多. explain看一下执行计划: 说实话,mysql不熟,也并没看出什么门道. 经过…
转摘:http://www.cnblogs.com/ymj126/p/3712727.html 用于学习,笔记,以备后用. 1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer. 奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装PL/SQL  Developer.按理说安…
前几天碰到一个有趣的事情:早上同事执行一个包很久没有反应,就中断了执行,发邮件让我帮忙查看具体情况,我用PL/SQL Developer登录后,找到这个包的过程中发现这个包的图标有红色叉叉,也就是说这个包有地方没有编译通过,于是我便单击右键点击“重新编译”,结果一直没有响应,导致PL/SQL Developer直接卡死,刚开始没太留意,直接杀掉PL/SQL Developer相关进程,重新打开它然后编译这个包,结果还是这个情况,还是头一次遇到这种情况,一头雾水. 后来搜索了一下才知道原因: 1:…
今天遇到一个错误提示:ORA-06502:PL/SQL :numberic or value error: character string buffer too small,一般对应的中文信息为:ORA-06502: PL/SQL: 数字或值错误 :字符串缓冲区太小.仔细检查调试过程中才发现是开发人员定义了一个变量,但是在脚本里面赋予了该变量超过其长度的值.结果就报这个错误.我习惯总结每一个遇到的错误信息,既有利于学习.总结知识,也方便以后遇到此类问题能够及时给出解决方法. 如果执行oerr…
Oracle开发者估计对PL/SQL Developer都非常熟悉了,里面有些小的功能点大概还有些初学者没发现.PL/SQL Developer支持多连接多窗口,下面详细说说. 主连接的概念 打开PL/SQL Developer出现登录界面,成功登录后的数据库连接就是主连接.新建窗口和打开文件都是使用这个主连接,对象浏览器也显示主连接的内容.主连接的特征 1)Session菜单Log on...,里面那个黑体的就是当前主连接. 2)Connection List 可以直接在每个连接点右键上新建和…
PL/SQL Developer在64位系统上连接Oracle,需要安装32位Oracle client客户端,使用后,发现操作数据库出现乱码的情况.经过查找资料,解决此问题,方法如下: 需要在系统的环境变量中,加入以下变量: NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK   然后,重启PL/SQL Developer,一切正常. 其中还有可能存在于注册表:(regedit)的:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node…
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将讨论如何利用单行函数以及使用规则. SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符.数字.日期.转换.和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数.这些函数均可用于SELECT,WHERE.ORDER BY等子句中,例如下面的例子中就包含了TO…