网站首页 > 技术文章 正文
承接(三)。晚上在家闲来没事,这次我们来聊一聊关于创建和运行PL/SQL代码的的一些建议。
假设一个 PL/SQL 程序员从来没考虑过诸如系统设计或者单元测试这样的任务,那么他至少应该熟悉下面这些操作:
(1)在数据库中导航;
(2)创建和编辑 PL/SQL 源代码;
(3)编译 PL/SQL 源代码,改正编译器发现的错误或者警告;
(4)从某些环境中执行编译好的程序;
(5)检查程序运行结果(屏幕输出,表数据变化等)。
和C语言等一些独立语言不同,PL/SQL 是寄生在 ORACLE 内部执行环境中的,所以 PL/SQL 在完成上述任务时,时不时会有一些细微的差别,有一些差别是令人愉快的,而另外一些,则 令人苦恼。
1、在数据库中导航
我们需要检查数据结构(表,列,序列,用户自定义数据类型等等),还需要知道我们将要调用的、已存在的存储过程。当然,我们可能还需要知道表中的实际内容(列,约束等等)。
在数据库中导航有两种不同的方法:
(1)使用集成开发环境IDE。像 toad,SQL developer,SQL navigator 它们都提供可视化浏览器,支持鼠标点击导航操作。
(2)使用命令行方式,比如在SQL*plus环境,运行脚本来查询数据字典视图 all_objects 或者 user_objects 中的内容
我想,大多数人都会选择使用图形化的IDE,除非我们已经在ORACLE环境工作了很久,已经对命令行方式着迷,编写的各种脚本运行也相当高效,否则IDE更容易上手。
2、创建和编辑源代码
每个程序员喜欢的代码编辑器都不一样,有的喜欢 TOAD ,有的喜欢最简单的文本编辑器。一些复杂的编辑器可以提供很多功能:图形化的调试器,对关键字进行补全,当我们键入程序包的子程序名称时,提供程序预览,将编译器报错的行或者列设置为高亮。有的还能提高超链接功能,使得开发人员可以快速跳转到变量或者子程序的声明之处。
PL/SQL 所特有的是,在程序被编译和执行之前,它所调用的存储过程的源代码必须加载到数据库中。这份保留在数据库中的备份能被有足够权限的程序员查看。说到这,我们立刻就会想到如下这些代码管理问题:
(1)程序员如何,在哪里找到一个存储过程的原始备份?
(2)这些代码是存储在磁盘介质,还是仅仅存储在数据库中?
(3)我们多久需要做一次备份?如何备份?
(4)如何管理多个开发者对代码的访问?也就是说,我们是否因此需要一个版本控制系统?
在我们开始开发一个应用系统之前,就应该胸有成竹,最好是根据选择的软件开发工具来进行。没有哪一个单一的工具或者流程能适合所有的开发团队,一些大神级的人物通常都是把 源代码 保存在文件中——也强烈建议开发者不要把 RDBMS(关系型数据库管理系统) 作为代码存放处。
3、 使用 SQL*plus
作为oracle前端工具的鼻祖,SQL*plus提供了一个命令行解释器,既支持SQL,也支持SQL*plus。也就是说它接收用户端输入的语句,传递给oracle服务器,然后显示结果。
这些年来,ORACLE 提供了几个版本:
(1)一个控制台程序
这是一个从 SHELL 或者命令行提示符下运行的程序(这种环境有时被称为控制台)
(2)一个类 GUI 程序
这种形式的 SQL*PLUS 只存在 WINDOWS 环境下。一些大神称这个为 类GUI 。因为除了所用的字体为位图字体之外,除了很少的不同,它看上去和控制台程序没什么不同。而且 ORACLE 自从 8i 之后,这个产品没有升级过。
(3)iSQL*PLUS
这个程序从 WEB 浏览器窗口执行,WEB 浏览器连接到一个中间层,这个中间层上运行着 ORACLE HTTP 服务器和 iSQL*PLUS 服务器。
要注意的是,从ORACLE 11G开始,ORACLE 只提供控制台的 SQL*PLUS 程序。
大多数人喜欢控制台的原因无非有几个:
(1)屏幕绘制速度快,尤其当查询的输出量较大时,速度的差别非常明显;
(2)命令历史记录保存得更完善(至少在 WINDOWS 平台是如此);
(3)可以很容易调整字符的显示效果,比如字体,颜色和滚动缓存的大小;
(4)只要是安装了 ORACLE 服务器端和客户端的机器,都默认安装了 SQL*PLUS。
下一次,就主要介绍 SQL*PLUS 的一些操作。
猜你喜欢
- 2025-07-21 效率!MacOS下超级好用的Linux虚拟工具:Lima
- 2025-07-21 PL/SQL 杂谈(六)(pl sql教程)
- 2025-07-21 Rocky Linux 9.6重磅发布!新增WSL支持+全量包更新
- 2025-07-21 MyEclipse数据库教程:在MyEclipse中编辑和执行SQL
- 2025-07-21 Java ThreadDump 生成解析(java threadgroup)
- 2024-10-25 oracle查询语句执行计划分析 oracle 查询执行计划
- 2024-10-25 springboot配置oracle数据源 springboot配置jndi数据源
- 2024-10-25 Oracle 数据库、表、方案的逻辑备份与恢复
- 2024-10-25 基于prometheus+grafana体系监控Oracle数据库
- 2024-10-25 WINCC保存数据到Oracle wincc数据如何存储到excel中
你 发表评论:
欢迎- 618℃几个Oracle空值处理函数 oracle处理null值的函数
- 611℃Oracle分析函数之Lag和Lead()使用
- 600℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 596℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 592℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 583℃【数据统计分析】详解Oracle分组函数之CUBE
- 573℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)