PL/SQL语言基础
2018-03-02 15:41
316 查看
PL/SQL语言基础
本文将介绍PL/SQL的语法,字符集等语言规则,可能初期还不理解,但随着学习的深入,将会逐渐理解PL/SQL。我写着文章的目的是为了在我阅读《Oracle.PL.SQL程序设计》一书是做些笔记,并分享给其他同学。
PL/SQL的块结构
pl/sql块由以下四个方面组成:块头(可选)
块头主要是确定pl/sql的名称,类型,参数,返回本文/sql引擎要执行的语句
异常处理(可选)
这一部分类似于java中的try-catch,指的是处理pl/sql运行时出现的异常
举个栗子:
procedure addEmp (ename_in IN VARCHAR2) --块头 is hiredate_sys date; --声明 begin hiredate_sys:=sysdate; --执行 insert into m_employees (ename,hiredate) values (ename_in,hiredate_sys); exception --异常 end;
PL/SQL的块分类
匿名块指的是没有块头部分的块结构
命名块
指的是有块头部分的块结构,上面的栗子就是一个命名块
嵌套块
指的是嵌套在块中的子块
再来个栗子:
procedure demo1 is ...... begin ...... --下面是一个嵌套块 declare ...... begin ...... end; end;
PL/SQL中作用范围的理解
在java或者其他语言中也有作用范围的概念,比如说同一个类中方法中的变量在其他里面是不可见的,在PL/SQL中也有类似的概念。在一个块中生命的变量或者其他,在其他块中是不可见的,只有在本块或者本块的子块中可以使用。
有一种特殊情况需要注意,当子块中具有和包围块中相同的变量名,采用就近原则,除非采用下面方面指明应用父块中的变量。
第三个栗子:
package demo1 is variable1 number; begin --下面是一个嵌套块 declare variable1 number; begin variable1 := 30; --这个指的是嵌套块中的变量 demo1.variable1 :=40 --这个指的是包围块中的变量 end; end;
有一种叫做嵌套程序的结构,它指的是在包围块的声明部分中的过程或者函数,包围块中的变量对于嵌套程序是可见的,嵌套程序可以在执行过程中被调用。
举个小李子,时间太晚了,不敲了,有些犯懒。
PL/SQL的字符集以及标识符关键字等
PL/SQL的字符集字符集
为US7ASCII,记住是ASCII就好。最重要的是PL/SQL是一个不区分大小写的语言。
PL/SQL的标识符命名规则为:
最长30个字符
必须以字符开头
可以带有$,_,#
标识符的命名规则相信每个公司都有规定,但是我要讲一个有趣的事。我可以明明一个标识符为 (“ABC”)注意这个标识符是带有双引号的,之前说PL/SQL不区分大小写,但是以这种方式命名的标识符是区分大小写的,并且使用时必须带有双引号。
关于字符串中使用单引号的问题
在PL/SQL中我们定义一个字符串时是这样定义的 —— ‘我是个字符串’ 但当我定义一句英文时就尴尬了 ( I’m a string ) 想要表达这样的句子我们不得不这样写——’I”m a string ’ 。其实还有一种办法就是—— q’!I’m a string!’ 其中的 ! 可以为 {} , [] ,(),||。
PL/SQL中的注视
PL/SQL中支持单行注释以 – 开头。多行注释 由/* */ 包围
PL/SQL的标签符号《》
标签通常和GOTO语句一起应用,格式为 《identifier》,其中identifier是一个PL/SQL中有效的标识符。
最后一个栗子:
create or replace procedure demo8 is begin dbms_output.put_line('test the goto'); goto the_point; dbms_output.put_line('这条语句不会输出'); <<the_point>> --这是一个标签,提供GOTO语句的定位功能 dbms_output.put_line('goto 语句执行成功'); end;
我们的嵌套块可以是匿名的,我们可以用标签为它赋予一些意义。
相关文章推荐
- [转贴]Oracle PL/SQL语言基础
- PL/SQL --> 语言基础
- Oracle PL/SQL语言基础
- PL/SQL1——语言基础
- Oracle PL/SQL语言基础
- PL/SQL语言基础
- Oracle PL/SQL语言基础
- Oracle PL/SQL语言基础
- Oracle PL/SQL语言入门基础
- 用10!来回顾 PL/SQL语言基础 && 标准异常名
- [转贴]Oracle PL/SQL语言基础
- Oracle PL/SQL语言基础_控制语句
- Oracle PL/SQL语言基础
- PL/SQL语言基础
- Oracle PL/SQL语言基础
- Oracle PL/SQL语言基础之一
- Oracle PL/SQL语言基础1 [初级] (http://www.cn-mpa.com/edu/a1/8/892f4a44496ef382.asp)
- Oracle PL/SQL语言基础
- PL/SQL--&gt;语言基础
- Oracle学习交流(3) -----PL/SQL语言基础