plsql programming 18 包】的更多相关文章

所谓包, 就是把一组PL/SQL 的代码元素组织在一个命名空间下. 另外, 包的用法就类似java中的类.( 有封装, 有重载, 没有继承和多肽) create or replace procedure process_employee( employee_id_in IN employees.employee_id%type) is l_full_name ); begin select last_name || ' , ' || first_name into l_full_name fro…
bolean 类型 raw 类型, 用来保存和操作少量的二进制数据. urowid 和 rowid 类型, 这两种数据类型表示数据库的 rowid. 所谓 rowid 就是一个标识符-用来表示数据库中一行记录的物理地址的二进制值. 一个rowid值可以唯一的标识出数据库表中的一行数据, 即便这个表没有唯一键. 两行记录就算是所有列的值都完全相同, 但是会有不同的 rowid 或者 urowid. 从历史上说, rowid 类型要比 urowid 出现的早, 伴随着 Oracle 增加的新功能,…
挂起语句, 是指数据库 Hang 到那不能动了, 触发的. 1. DML 触发器 这种类型的触发器对于开发人员都很常见, 其他类型的触发器主要是给DBA使用的. 配置触发器,我们需要回答以下问题: 触发器应该是对整个DML语句触发一次, 还是要为语句涉及的每一行都触发一次 ? 触发器是应该在整个语句开始之前或者结束之后, 或者是在对每一行记录处理之前或者之后触发 ? 触发器到底是由插入, 更新, 删除或者是某种组合触发的 ? (oracle 11g 开始支持多个操作组合触发器) 如果我在 boo…
代码模块化, 即将一大块代码拆成若干小块(过程), 然后就可以在其他模块调用这些模块了, 这样, 重用性更好, 也方便管理. 过程: 过程是一个可以像执行 PL/SQL 语句一样调用的程序, 一个过程可以执行一个或多个动作. 我们可以通过参数列表向过程传递或者从过程传出信息. 函数: 函数是一个通过RETURN 语句返回数据的程序, 使用起来就像是一个 PL/SQL 表达式. 我们可以通过参数列表传入参数, 也可以通过参数列表传出参数, 不过通常情况下这么做并不好. 数据库触发器: 触发器是当数…
************************************************************************   ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************ 包package package是一个能够将相关对象存储在一起的PLSQL结构,Package包括两个分量的组成部分:specif…
这一章的内容, 只完成了一部分, 剩下的用到再补充吧 由于依赖关系, 而编译失败, 需要重新编译. ( 所谓依赖, 是指存储过程, 函数等在运行中调用的对象, 比如table 等, 比如你删除了过程中调用的table, 然后又创建了一个一模一样的, 这个过程就需要重新编译) alter package bookworm compile body reuse settings; alter procedure add_book compile reuse settings; 1. 数据字典帮助 U…
我们可以把多个SQL语句集中在一起, 在逻辑上组成一个事务, 从而保证这些操作或者全部被保存到数据库(用sql的说法就是”提交”), 或者被整体驳回(用sql的说法是“回滚”). 事务: ACID 原子性: 改变或者全部发生, 或者全部不发生. 一致性: 正确的状态转换, 不能违反任何完整性约束, 例如 银行汇款 隔离: 从任何一个事务的角度来看, 其他事务看起来都是在它之前或之后发生的. 持久性: 一旦一个事务成功结束, 状态的改变就是永久的了. DML 语句, insert, update,…
记录类型非常类似数据库表中的行. 记录作为一个整体本身并没有值, 不过每个单独成员或字段都有值, 记录提供了一种把这些值当做一组进行操作的方法. 例如: 1: -- create a table 2: -- chap11_01.sql 3: create table books ( 4: book_id integer; 5: isbn varchar2(13), 6: title varchar2(200), 7: summary varchar2(2000), 8: author varch…
动态SQL 是指在执行时才构建 SQL 语句, 相对于静态 sql 的编译时就已经构建. 动态PLSQL 是指整个PL/SQL代码块都是动态构建, 然后再编译执行的. 作用: 1. 可以支持 DDL 语句, 静态 sql 只能支持 DML 语句. 2. 支持web 引用程序的查询意愿( 一个网络应用程序的常见需求是用户可以指定他们想看到的列, 以及改变数据的排序方式 ) 2. 可以将业务逻辑先放在表中, 然后再动态编译. NDS 是我们首选的动态解决方案. NDS 执行动态语句的办法就是 exe…
1. 条件语句 if salary > 40000 or salary is NULL then give_bonus(employee_id, 500); end if; if condition then --- else --- end if; if condition then statement1 elsif condition then statement2 else statement3 end if; 例如: IF salary >= 10000 AND salary <…