您的位置:首页 > 数据库 > Oracle

Oracle不支持在select语句中调用自定义函数时使用自定义类型作参数?

2007-04-17 21:07 826 查看
疑惑,希望能搞明白,现在此记录下来,测试脚本如下:

DECLARE
/* TYPE Envelop IS RECORD( --外包矩形结构
Xmin NUMBER,
Ymin NUMBER,
Xmax NUMBER,
Ymax NUMBER);*/

v_Env Common_Util.Envelop;
i NUMBER;
BEGIN
v_Env.Xmin := 0;
v_Env.Ymin := 0;
v_Env.Xmax := 0;
v_Env.Ymax := 0; --test 1
IF is_intersected(v_Env, 0, 0, 0, 0) = 1 THEN--通过
NULL;
END IF;
--test 2
IF common_util.is_intersected(v_Env, 0, 0, 0, 0) = 1 THEN--通过
NULL;
END IF; --test 3
SELECT 0 INTO i FROM dual;--词句通过 --test 4
SELECT 0 INTO i FROM dual WHERE common_util.test1(1, 0) = 1;--此句通过 --test 5
--SELECT 0 INTO i FROM dual WHERE 1 = common_util.is_intersected(v_Env, 0, 0, 0, 0);
--test 6
--SELECT 0 INTO i FROM dual WHERE 1 = common_util.is_intersected(v_Env, 0, 0, 0, 0);
--此句出错,pls-00382错误,调了半晚上,最终放弃
--前边的test1,2,3,4均能够通过,故此推断is_intersected函数本身没有问题,类型定义也没有问题
--最后总结是:
--select语句中自定义函数中不能使用自定义类型作参数,但是我没有找到关于此的资料说明,不知道正确不正确
--那位高手看到请赐教!
END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐