CREATE OR REPLACE FUNCTION IS_DATE_YMD
(in_date in data) --这里in data 不能有空格啊, 应该是 in_date date 才对
RETURN emp%ROWTYPE
IS
Result date;
可在第三方软件中,如pl/sql中编译。
1、打开pl/sql软件并登录到指定数据库。
2、点击左上方像纸片的按钮,然后点击“sql窗口”
3、在d出窗口中编写自定义函数。
4、编写完毕后,直接点击左上角像齿轮的按钮(即执行按钮),就可以编译了。
如果纯粹看您给的例子,那返回的都是单一数值,区别是单纯遍历语句结果,前者是通过函数。我想您是想通过这个例子来问,如何提高函数在QUERY中的效率问题,因为你例子本身没有实际应用价值,只可能是你为解决问题的实验了。不知是否正确。
因为不知道你的具体工作情况,我只能提供多种可能,有的方法也许受权限,和你工作的内容限制,无法实现。我个人经验来看。
1 尽量把函数放在你Login的schema下,对权限的检测,如果是自身的schema会提高速度。
2 如果是你要生成report,你看看有没有可能,或者权限,生成Materialized view, 而不直接在他的Table或者View里面找。 Materialized View的方法有时候在数据仓库中会用来提高速度,当然 前提是你有这个权限。
3就这个语句来看,我个人觉得没有必要从索引来找。你对自己的数据肯定比我们要熟悉的多,过多的索引反而会是速度变慢。觉得要么从表,要么从函数去入手。祝好运
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)