zoukankan      html  css  js  c++  java
  • 【经验】【ORACLE】存储过程或者函数怎样获取自己的名称和类型

    题记:人有时候就好像这存储过程,只有通过和别人交流才能清楚才能知道自己到底是个什么东西!那怕是最最基本的东西你自己都不一定知道。傻B了吧……


    ----------------调皮的分割线----------------

    在Oracle中,存储过程和函数等对象,可通过调用OWA_UTIL包中的who_called_me过程来获得自身的名称和类型。

    以下是Oracle联机文档对该过程的说明,该过程将返回调用者的一些信息。

    Syntax:

    owa_util.who_called_me(
       owner          out      varchar2
       name           out      varchar2
       lineno         out      number
       caller_t       out      varchar2);
    

    Parameters:

    owner - the owner of the program unit.

    name - the name of the program unit. This is the name of the package, if the calling program unit is wrapped in a package, and the name of the procedure or function if the calling program unit is a stand-alone procedure or function. If the calling program unit is part of an anonymous block, this is NULL.

    lineno - the line number within the program unit where the call was made.

    caller_t - the type of program unit that made the call. The possibilities are: package body, anonymous block, procedure, and function. Procedure and function are only for stand-alone procedures and functions.

    Generates

    Not applicable.

    在网上摘了一个应用的例子:

    CREATE OR REPLACE FUNCTION fn_getname
       RETURN VARCHAR2
    IS
       l_owner    VARCHAR2 (30);
       l_name     VARCHAR2 (30);
       l_lineno   NUMBER;
       l_type     VARCHAR2 (30);
    BEGIN
       OWA_UTIL.who_called_me (l_owner, l_name, l_lineno, l_type);
       RETURN l_owner || '.' || l_name||':'||to_char(l_lineno)||','||l_type;
    END;
    /


    CREATE OR REPLACE PROCEDURE demo
    AS
    BEGIN
       DBMS_OUTPUT.put_line (fn_getname);
    END;
    /

    call demo();

    通过该例可以了解该过程的应用。看起来,好像函数对象只能通过who_called_me获得自己调用者的信息,调用者通过调用函数来获取自己的信息……真纠结。

  • 相关阅读:
    JVM学习02:GC垃圾回收和内存分配
    JVM学习01:内存结构
    webservice学习01:wsdl文档结构
    项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)
    mysql学习3:mysql之my.cnf详解
    项目总结20:阿里云免费https证书申请
    5月9日——vue渲染过程中{{xxx}}显示
    5月8日——iOS中的3D Touch效果
    5月7日——采用第三方页面内容,但是顶部title使用自己的
    5月5日——更改手机状态栏的背景颜色
  • 原文地址:https://www.cnblogs.com/AzikPhil/p/oracle_who_called_me.html
Copyright © 2011-2022 走看看