zoukankan      html  css  js  c++  java
  • 存储过程调用过程中,获取当前正在执行的过程的信息

         参考网址:http://awads.net/wp/2006/10/17/did-you-call-me/

         我们在调用存储过程的时候,发生异常,经常无法判断是那个存储过程发生了错误,而导致问题不好排查,Oracle提供了一个在运行过程中获取存储过程名字的过程:OWA_UTIL.WHO_CALLED_ME

     1 CREATE OR REPLACE PROCEDURE my_proc
     2     IS
     3        owner_name    VARCHAR2 (100);
     4        caller_name   VARCHAR2 (100);
     5       line_number   NUMBER;
     6        caller_type   VARCHAR2 (100);
     7     BEGIN
     8        OWA_UTIL.WHO_CALLED_ME (owner_name,caller_name,line_number,caller_type);
     9        DBMS_OUTPUT.put_line (   caller_type
    10                             || ' '
    11                             || owner_name
    12                             || '.'
    13                             || caller_name
    14                            || ' called MY_PROC from line number '
    15                            || line_number
    16                           );
    17    END;
    18    

    测试:

    1 BEGIN
    2   MY_PROC;
    3 END;

    输出:ANONYMOUS BLOCK . called MY_PROC from line number 2

    测试:

     1   DECLARE
     2     V_STR2TBLTYPE DBMS_SQL.VARCHAR2_TABLE;
     3   BEGIN
     4     V_STR2TBLTYPE := SYS_UTIL.STR2VARLIST('1,2,3,4,5,6');
     5     IF V_STR2TBLTYPE.EXISTS(1) THEN
     6       FOR IDX IN V_STR2TBLTYPE.FIRST .. V_STR2TBLTYPE.LAST LOOP
     7         DBMS_OUTPUT.PUT_LINE(V_STR2TBLTYPE(IDX));
     8       END LOOP;
     9     END IF;
    10   END;

    调用过程介绍

    输出:PACKAGE BODY SCOTT.SYS_UTIL called MY_PROC from line number 267

    I believe that we are who we choose to be. Nobody‘s going to come and save you, you‘ve got to save yourself. 我相信我们成为怎样的人是我们自己的选择。没有人会来拯救你,你必须要自己拯救自己。
  • 相关阅读:
    leetcode-409
    leetcode-836
    leetcode-1160
    leetcode-面试题13
    leetcode-695
    go的一些小lib
    leetcode-300
    cookie
    php上传文件
    PHP 文件创建/写入
  • 原文地址:https://www.cnblogs.com/caroline/p/3086487.html
Copyright © 2011-2022 走看看