1、学习Oracle的动机
曾从事嵌入式开发工作,主要在Linux C++环境下进行应用开发,工作涉及的数据库相关内容很少,主要是通过Proc*C实现对PL/SQL接口的调用,数据库对于我来说是一个比较模糊的概念。
离开开发岗一年有余,想在日常闲暇时间先借助工具书《Oracle PL/SQL从入门到精通》对Oracle PL/SQL进行比较系统的入门学习,预计时间两个月,后续视情况选择性学习进阶技巧。
文中若有瑕疵处,烦请读者在评论区或发送私信予以斧正。

2、笔记样式
大体会选择以简介+例程+Q&A的方式进行记录。

3、关于软件安装
数据库版本选择Oracle 10g,数据库服务器,客户端,带可操作界面的SQL Developer的安装及配置在网络上有大量教程,在此不做赘述。

4、Q&A
4.1 Q:PL/SQL语言是一种什么样的程序设计语言?
A:一种结构化的程序语言。

4.2 Q:PL/SQL提供了现代软件工程的那些主要特性?
A:模块化、数据封装、信息隐藏、异常处理、面向对象的程序设计等。

4.3 Q:在基于Oracle的然健开发项目中,为什么首选的编程语言是PL/SQL?
A:Oracle将许多常见的数据库程序设计功能集成在PL/SQL中,使用PL/SQL
相较其他编程语言更方便简洁。

4.4 Q:除了包括过程语句之外,PL/SQL还可以包括什么语句?
A:SQL语句。

4.5 Q:PL/SQL引擎是怎样编译和执行PL/SQL程序的?
A:PL/SQL首先对用户提交的PL/SQL程序块进行语法分析,将过程化(PL/SQL)语句与SQL语句进行剥离,将PL/SQL语句交给过程语句执行器执行,而将SQL语句传递给SQL语句执行器执行。

4.6 Q:为什么使用PL/SQL可以改进系统的整体性能并减少网络流量?
A:PL/SQL将所有逻辑相关的SQL放在一个PL/SQL程序块中,一次性发给服务器执行,大幅度减少了用户访问数据库的次数,相应地减少了网络流量消耗。

4.7 Q:在PL/SQL中模块化是如何实现的?
A:通过使用过程、函数和软件包来实现。(这一点,后续会详细展开)

4.8 Q:PL/SQL程序设计语言具有哪些主要优势?
A:
① 开发成本最低(因为PL/SQL引擎集成在Oracle数据库服务器中)。
② 应用系统的开发简单、快捷(因为许多与数据库有关的程序功能已经集成在PL/SQL语言中)。
③ 方便Oracle数据库应用系统的开发(因为许多Oracle的管理和维护工具,以及调用工具都是以PL/SQL软件包的方式提供的)。
④ 方便分布式应用系统的开发(PL/SQL引擎集成在一些开发和部署工具中)。
⑤ 在使用过程化的语言控制结构进行编程的同时又可以使用SQL语句。
⑥ 可移植性非常好。
⑦ 标识符(如变量等)必须先声明(定义)后引用。
⑧ 具有完善而高效的异常处理功能。

4.9 Q:了解PL/SQL程序块结构,以及组成这种结构的三种程序段。
A:
① 声明段(可选):以DECLARE开始并以执行段的开始而结束,定义所有 在执行段和其他声明段中饮用的变量、游标和用户定义的异常。
② 执行段(必须):以BEGIN开始以END结束,在此段中可以嵌套任意
量的PL/SQL程序块。
③异常处理段(可选):以EXCEPTION开始,可以被嵌套在执行段中。当执行段中的错误和异常条件抛出时,就要执行异常处理程序的代码。
例程:

DECLARE
    msg varchar(20);
BEGIN
    msg := 'Hello world ! ';
    
    dbms_output.put_line(msg);
    
EXCEPTION
    -- 单行注释
    /*
     * 多行注释 ,这部分是异常处理模块,可有可无。
     */
END;
————————————————
版权声明:本文为CSDN博主「余同学的开发之路」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn/yujikui1/article/details/80701817

4.10 Q:PL/SQL程序的构成方式?
A:由至少一个程序块构成,程序块有三种类型:匿名块、过程和函数。

4.11 Q:创建、编译和执行PL/SQL程序块的具体步骤?
A:打开dos窗口 > 输入sql 账号/密码 > 输入语句 > 输入 “/” 执行。

4.12 Q:在PL/SQL中怎样输出信息?
A:通调用DBMS_OUTPUT软件包中的过程PUT_LINE进行输出。
注意:若没有出现输出信息,则需要以下指令手动开启该软件包功能。

SQL> set serverouput on

4.13 Q:在使用中文字符串时应该注意什么?
A:在声明段声明变量,简化程序,提高程序的可维护性。
例程:

DECLARE
   v_pioneer VARCHAR2(25) :='中文字符串'
BEGIN
	DBMS_OUTPUT.PUTLINE('输出字符串 —— '|| v_pioneer);
END

输出:

SQL> /
输出字符串 —— 中文字符串
PL/SQL 过程已成功完成。

5.总结
本章内容主要是PL/SQL入门相关,介绍了PL/SQL的特性、优势和结构,并编写一段简单的测试代码。接下来会简单学习一些常用的SQL*PLUS的命令。

更多推荐

Oracle PL/SQL自学(一):初识PL/SQL