您的位置:首页 > 数据库

在SQL语句中使用函数的限制及过程与函数的区别

2012-04-09 10:19 489 查看
²必须是存储函数,存储过程不能在SQL语句中调用。
²参数的类型只能是IN。
²参数和返回值的数据类型都必须是SQL支持的数据类型,而不能是PL/SQL中特定的数据类型,如BOOLEAN、RECORD、TABLE。
²不能用于CREATE或者ALTER TABLE命令中的CHECK约束或者字段的缺省值定义。
²必须有执行函数的权限。

²在SQL语句(SELECT、UPDATE、DELETE)中调用的函数不能包含DML语句。
²在DML语句(UPDATE、DELETE)中调用的函数不能查询在DML中使用的表。
²在SQL语句中调用的函数不能含有终结事务(transaction)的语句,如COMMIT。
函数中不能调用违反上述限制的子程序。

CREATE OR REPLACE FUNCTION dml_call_sql (p_sal NUMBER)

RETURN NUMBER

IS

BEGIN

INSERT INTO emp (empno, ename, hiredate, job_id, salary)

VALUES(1, 'employee 1', SYSDATE, 'SALESMAN', 1000);

RETURN (p_sal + 100);

END;

/

UPDATE emp SET sal = dml_call_sql(2000)

WHERE empno =170;

错误!

过程与函数的区别

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐