定义变量

    变量声明语法请参见。

    图 1 declare_variable::=

    对以上语法格式的解释如下:

    • type:变量类型。
    • value:该变量的初始值(如果不给定初始值,则初始为NULL)。value也可以是表达式。

    示例

    %TYPE属性

    %TYPE主要用于声明某个与其他变量类型(例如,表中某列的类型)相同的变量。假如我们想定义一个my_name变量,它的变量类型与employee的firstname类型相同,我们可以通过如下定义:

    这样定义可以带来两个好处,首先,我们不用预先知道employee 表的firstname类型具体是什么。其次,即使之后firstname类型有了变化,我们也不需要再次修改my_name的类型。

    %ROWTYPE属性

    同样可以使用在cursor上面,该组数据的字段名称与字段类型都与employee表相同。%TYPE也可以引用cursor中某一列的类型,我们可以通过如下定义:

    变量作用域

    • 变量必须在declare部分声明,即必须建立BEGIN-END块。块结构也强制变量必须先声明后使用,即变量在过程内有不同作用域、不同的生存期。
    • 在外部块定义的变量,可以在嵌套块中使用。但外部块不能访问嵌套块中的变量。