PL/SQL学习笔记(四)

上一篇 / 下一篇  2007-06-04 11:59:47 / 个人分类:数据库使用

1. 当子程序使用参数列表中引用的变量或表达式调用函数时,这些参数被称为实参,在这种情况下,参数实际上将参数值保存在内存中;如果变量或表达式是在子程序规范中声明,并在子程序主体中引用时,则参数称为形参,在这种情况下,内存中保存的是指向真正的参数值的指针.

2. 定义函数中的参数类型时,如果要接受一个来自表中的参数,并且不想对参数类型使用硬编码,因为以后可能会改变——只需在参数后面添加%TYPE,以便从表中获得字段类型即可。例如下面一行代码将参数p_emptype的数据类型设置为表employee中pay_type字段的类型

(p_emptype employee.pay_type%TYPE)

3. 当参数中包含大型值、表达式或记录时,将对性能造成极大的影响。将这些数据拷贝到参数中需要花费时间。程序员提高程序性能的一种方法是在模式语句中使用NOCOPY提示。

使用NOCOPY提示时,您指导(而不是命令)编译器按引用(而不是按值)传递参数

4. 存储函数是一个保存在数据库中的函数,可以被PL/SQL代码调用。函数和存储函数的唯一区别是,在关键字FUNCTION加上CREATE [OR REPLACE]关键字。

5. 使用EDIT FUNCTION_NAME;修改函数代码后,必须将它重新装载到缓冲区中(GET FUNCTION_NAME),然后输入/并按回车执行

6. 缺省情况下,函数执行时,其权限与函数的定义者相同,而不是调用者.定义者的权限受它所在的schema约束,您可以在PL/SQL完全限定对象名称,以便能够修改其他schema中的表.但是,这会限制您代码的移植性.

Oracle允许您使用调用者权限调用函数.在这种情况下,您不受schema的约束,而是受调用者权限的约束。您可以通过AUTHID子句使用调用者权限,如:

CREATE OR REPLACE FUNCTION mypi

  AUTHID CURRENT_USER AS

BEGIN

  NULL;

  RETURN 3.14;

END;

7. ORACLE SCHEMA OBJECT的定义

A schema is a collection of database objects.A schema is owned by a database user and has the same name as that user.Schema objects are logical structures created by users to contain, or reference, their data. Schema objects include structures like tables, views, and indexes. You can create and manipulate schema objects using Oracle Enterprise Manager.


TAG: 数据库使用

 

评分:0

我来说两句

Open Toolbar