zoukankan      html  css  js  c++  java
  • Oracle不支持在select语句中调用自定义函数时使用自定义类型作参数?

    疑惑,希望能搞明白,现在此记录下来,测试脚本如下:

    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;

  • 相关阅读:
    java练习生
    java练习生
    java练习生
    java练习生
    java练习生
    sqlserver 将表转为java实体类型
    linux下部署.net core/java
    Java根据经纬度计算两点之间的距离
    Docker学习——Kubernetes(八)
    Docker学习——Docker 三剑客(七)
  • 原文地址:https://www.cnblogs.com/flyingfish/p/717325.html
Copyright © 2011-2022 走看看