zoukankan      html  css  js  c++  java
  • oracle toda和pl/sql匪夷所思的差异

    在编写一个存储过程的时候,起初因为是同事写的,它是在toad中写的,已经写好了,需要我进行一下改造,于是我使用PL/SQL打开后进行修改并编译通过,然后在PL/SQL进行了测试,奇怪的是测试的时候PL/SQL显示一直在执行,一直不能完成执行。起初我以为是存储过程的写的有问题,于是远程到服务器上用TOAD 测试,结果TOAD执行只需要2s就搞定了。所以十分不解TOAD 和PL/SQL的差异为何如此之大,是我的代码写的有问题吗?

      存储过程其实也就是执行了以下的代码:

    SQLSTR := 'INSERT INTO A(a1,a2,SHAPE)
                                  SELECT D.a1,D.a2,SDE.ST_INTERSECTION (:1,D.SHAPE)
                                  FROM '||tabname||' D WHERE SDE.ST_INTERSECTS(:2,D.SHAPE)=1';
          EXECUTE IMMEDIATE SQLSTR USING MYPOLY, MYPOLY2;

    在toad中我使用如下如下语句执行:

    exec test_pro('POLYGON ((10.01 20.03, 20.94 21.34, 35.93 10.04, 10.01 20.03))')

    整个过程只需要2s,为何pl/sql死活不能执行结束?因为之前在PL/SQL也写过像上一篇中写道的存储过程,执行的也很成功,并非是设置的原因造成的。各位是否遇到过此类问题,百思不得其解中。

    成功不是得到多少东西,而是把身上多余的东西的扔掉多少。
  • 相关阅读:
    C Looooops(扩展欧几里得)题解
    POJ1061 青蛙的约会(扩展欧几里得)题解
    UVA 11426 GCD
    Trailing Zeroes (III) (二分)题解
    BZOJ 1977 次小生成树
    BZOJ 4557 侦查守卫
    codevs 1088 神经网络
    codevs 1135 选择客栈
    BZOJ 3527 力
    BZOJ 1610 连线游戏
  • 原文地址:https://www.cnblogs.com/Ferdinand/p/2734581.html
Copyright © 2011-2022 走看看