plsql programming 20 管理PL/SQL代码(个人感觉用不到)
这一章的内容, 只完成了一部分, 剩下的用到再补充吧
由于依赖关系, 而编译失败, 需要重新编译. ( 所谓依赖, 是指存储过程, 函数等在运行中调用的对象, 比如table 等, 比如你删除了过程中调用的table, 然后又创建了一个一模一样的, 这个过程就需要重新编译)
alter package bookworm compile body reuse settings;
alter procedure add_book compile reuse settings;
1. 数据字典帮助
USER_* : 查看当前连接模式所拥有的数据库对象的信息.
ALL_* : 当前连接模式能够访问的数据库对象的信息(可能是因为当前模式拥有这些对象, 也可能是因为当前模式已经被授予访问这些对象), 通常这类视图和对应的USER视图具有相同的列, 不过ALL 视图中会多出一个OWNER列.
DBA_* : 这个视图显示的是全部(不包括SYS拥有的)数据库对象的信息, 这类视图通常和对应的ALL视图具有相同的列.
USER_ARGUMENTS : 当前模式所拥有的全部过程和函数的参数信息.
USER_DEPENDENCIES: 当前模式的对象互相依赖关系, oracle 主要通过这个视图标识对象的无效状态.
USER_ERORRS : 当前模式拥有的对象(包括触发器)的编译错误. SQL*PLUS 的 show errors 命令访问的就是这个视图.
USER_IDENTIFIERS(oracle11g 之后引入): 强大的代码分析工具
USER_OBJECTS : 这个视图显示我们拥有的对象.
USER_OBJECT_SIZE : 对象的大小, 事实上, 这个视图显示的是源代码, 解析后的代码以及编译后的代码大小.
USER_PLSQL_OBJECT_SETTINGS(oracle10g 之后引入): 记录的是PL/SQL对象的可以通过ALTER 以及SET DDL 命名修改的属性信息.
USER_PROCEDURES : 这个视图显示的是存储程序的信息.
USER_SOURCE : 我们所拥有对象的源代码
USER_STORED_SETTINGS: PL/SQL 编译器标志, 通过这些视图可以发现哪些程序是通过原生编译的.
USER_TRIGGERS 及 USER_TRIG_COLUMNS : 我们所拥有的数据库触发器.
例如:
1: select object_type, object_name, status
2: from user_objects
3: where object_type in (
4: 'PACKAGE', 'PACKAGE BODY', 'FUNCTION', 'PROCEDURE'
5: 'TYPE', 'TYPE BODY', 'TRIGGER')
6: order by object_type, status, object_name
另外 user_source 这个字典也非常有用, 例如:

1: create or replace procedure progwith(str in varchar2)
2: is
3: type info_rt is record(
4: name user_source.name%type,
5: text user_source.text%type
6: );
7: type info_aat is table of info_rt
8: index by pls_integer;
9:
10: info_aa info_aat;
11: begin
12: select name || '-' || line,
13: text
14: BULK COLLECT INTO info_aa
15: from user_source
16: where upper(text) LIKE '%' || UPPER(str) || '%'
17: and NAME <> 'VALSTD'
18: and NAME <> 'ERRNUMS';
19:
20: disp_header('Checking for presence of "' || str || '"');
21:
22: for indx in info_aa first .. info_aa.last
23: loop
24: pl(info_aa(indx).name, info_aa(indx).text);
25: end loop;
26: end progwith;
一旦这个包编译成功, 我们就可以检查如下: exec valstd.progwith(‘-20’)

PL/SQL 程序调试
PL/SQL 自动测试






跟踪测试









PL/SQL 程序的调试





休息一下, 寻求帮助, 有的时候的确休息一下, 再考虑会有不一样的天空.

plsql programming 20 管理PL/SQL代码(个人感觉用不到)的更多相关文章
- 将PL/SQL代码封装在机灵的包中
将代码封装在机灵的包中 http://www.oracle.com/technetwork/issue-archive/2013/13-jan/o13plsql-1872456.html 绝大多数基于 ...
- 同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果
pl/sql 代码块: SELECT count(distinct t2.so_nbr) INTO v_count2 FROM KFGL_YW_STEP_qd t2 WHERE t2.partitio ...
- 使用PL/Scope分析PL/SQL代码
使用PL/Scope分析你的PL/SQL代码 从11g開始Oracle引入了PL/Scope 用于编译器收集PL/SQL程序单元的全部标识符(变量名.常量名.程序名等). 收集到的信息可通过一系列静态 ...
- oracle 中使用 pl/sql代码块
1.写匿名块,输入三角形三个表的长度.在控制台打印三角形的面积. declare -- (p=(a+b+c)/2) --声明三角形的面积 三条边 的 v_a number (10,2):=&n ...
- oracle中plsql练习题-----编写一个PL/SQL块,输出所有员工的员工姓名、员工号、工资和部门号
一.思路:首先输出需要变量接收,需要声明变量,于是考虑什么变量类型比较合适,在这我用的是table类型,最后,查询出来,循环输出即可. 二.具体实现 -- 编写一个PL/SQL块,输出所有员工的员工姓 ...
- plsql programming 16 动态SQL和动态PLSQL
动态SQL 是指在执行时才构建 SQL 语句, 相对于静态 sql 的编译时就已经构建. 动态PLSQL 是指整个PL/SQL代码块都是动态构建, 然后再编译执行的. 作用: 1. 可以支持 DDL ...
- pl/sql programming 02 创建并运行plsql代码
/* * chap 02 * ------------------------------------------------- */ create or replace function wordc ...
- PLSQL(PL/SQL)集成Team Foundation Server (TFS),实现数据库代码的版本管理
PL/SQL是面向Oralcle数据库的集成开发环境,是众多Oracle数据库开发人员的主要工具.由于PL/SQL(百度百科)不仅是一种SQL语言,更是一种过程编程语言,在项目实施过程中,会积累大量除 ...
- PL/SQL 01 代码编写规则
1.标识符命名规则当在 PL/SQL 中使用标识符定义变量.常量时,标识符名称必须以字符开始,并且长度不能超过 30 个字符.另外,为了提高程序的可读性,Oracle 建议用户按照以下规则定义各种标识 ...
随机推荐
- Ext js 应用例子
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- IOS研究之多个UITextField的键盘处理
在IOS开发中使用UITextField时常须要考虑的问题就是键盘的处理. 有时候,弹出的键盘会将UITextField区域覆盖,影响用户输入.这个时候就要将视图上移.这个时候我们须要考虑两点: 1, ...
- git fetch 的简单用法:更新远程代码到本地仓库及冲突处理
Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Github参与eoe的开源项目指南方式一1. 查看远程仓库 1 2 3 4 5 6 $ git re ...
- Spark Streaming on Kafka解析和安装实战
本课分2部分讲解: 第一部分,讲解Kafka的概念.架构和用例场景: 第二部分,讲解Kafka的安装和实战. 由于时间关系,今天的课程只讲到如何用官网的例子验证Kafka的安装是否成功.后续课程会接着 ...
- ubuntu下wine操作usb串口
呃,换成ubuntu后想玩下文曲星,貌似没有linux下的下载工具,只好用wine. 用的是ch340的usb转串口,不得不说ubuntu果然集大成,这些驱动都有了,用minicom设置设备为/dev ...
- Node.js 解析gzip网页(https)
gzip网页指网页头字段Content-Encoding是gzip(GNU zip)内容编码方式.内容编码是指不丢失实体信息的前提下所进行的压缩. Node.js 代码如下: //========== ...
- asp.net 中点击button弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)
<td>现从事专业</td><td> <asp:TextBox ID="tbMajor" runat="server ...
- mui 选项卡
方法一:通过css 实现选项卡 <div id="slider" class="mui-slider"> <div id="slid ...
- null和undefined相等比较
在==(相等)判断中,null和undefined相等(它们也与自身相等),除此之外不与其他值相等. 示例代码: <!DOCTYPE html> <html lang="z ...
- 《深入PHP:面向对象、模式与实践》(二)
第4章 高级特性 本章内容提要: 静态属性和方法:通过类而不是对象来访问数据和功能 抽象类和接口:设计和实现分离 错误处理:异常 Final类和方法:限制继承 拦截器方法:自动委托 析构方法:对象销毁 ...