当前位置:  数据库>oracle

Oracle 定义对象的代码可以从user_source数据字典中找到

    来源: 互联网  发布时间:2017-04-03

    本文导语: //在Oracle中,我们可以从数据字典user_source(视图)中查看对象定义代码;   //我们先来看user_source视图的结构:   desc user_source;   Name Type           Nullable Default Comments                                      ...

//在Oracle中,我们可以从数据字典user_source(视图)中查看对象定义代码;  
//我们先来看user_source视图的结构:  
desc user_source;  
Name Type           Nullable Default Comments                                                              
---- -------------- -------- ------- --------------------------------------------------------------------  
NAME VARCHAR2(30)   Y                Name of the object                                                    
TYPE VARCHAR2(12)   Y                Type of the object: "TYPE", "TYPE BODY", "PROCEDURE", "FUNCTION",  
                                                         "PACKAGE", "PACKAGE BODY" or "JAVA SOURCE"   
LINE NUMBER         Y                Line number of this line of source                               
TEXT VARCHAR2(4000) Y                Source text    
//  
//下面的代码是user_source视图的定义代码:  
CREATE OR REPLACE FORCE VIEW "SYS"."USER_SOURCE" ("NAME", "TYPE", "LINE", "TEXT") AS  
select o.name,  
       decode(o.type#,   
              7, 'PROCEDURE',   
              8, 'FUNCTION',   
              9, 'PACKAGE',  
              11, 'PACKAGE BODY',   
              12, 'TRIGGER',   
              13, 'TYPE',   
              14, 'TYPE BODY',  
              'UNDEFINED'),  
       s.line,   
       s.source  
from sys.obj$ o,   
     sys.source$ s  
where o.obj# = s.obj#   
  and ( o.type# in (7, 8, 9, 11, 12, 14) OR  
                   ( o.type# = 13 AND o.subname is null))  
  and o.owner# = userenv('SCHEMAID')  
union all  
select o.name,   
       'JAVA SOURCE',   
       s.joxftlno,   
       s.joxftsrc  
from sys.obj$ o,   
     x$joxfs s  
where o.obj# = s.joxftobn  
  and o.type# = 28  
  and o.owner# = userenv('SCHEMAID');  
//  
//下面是我先定义好的一个procedure:show_employee,  
//现在我们来看其定义代码,注意,传递的参数要大写:  
set linesize 1000;  
set pagesize 1000;  
set long 10000;  
select type,line||' '||text  
from user_source  
where name='SHOW_EMPLOYEE';  
//  
TYPE         LINE||''||TEXT  
------------ -----------------------------------------------------------------------------------------  
PROCEDURE    1 procedure show_employee(empno_in in emp.empno%type)  
PROCEDURE    2 as 
PROCEDURE    3    v_sign number;  
PROCEDURE    4    v_empno emp.empno%type;  
PROCEDURE    5    v_ename emp.ename%type;  
PROCEDURE    6    v_deptno emp.deptno%type;  
PROCEDURE    7 begin  
PROCEDURE    8    select 1 into v_sign  
PROCEDURE    9    from dual  
PROCEDURE    10    where exists(select count(*) from emp where empno=empno_in);  
PROCEDURE    11    if v_sign=1 then  
PROCEDURE    12       select empno,ename,deptno into v_empno,v_ename,v_deptno  
PROCEDURE    13       from emp where empno=empno_in;  
PROCEDURE    14       dbms_output.put_line('information of'||empno_in||' are:');  
PROCEDURE    15       dbms_output.put_line('empno:'||v_empno||',ename:'||v_ename||',deptno:'||v_deptno);  
PROCEDURE    16    end if;  
PROCEDURE    17    exception  
PROCEDURE    18             when others then  
PROCEDURE    19             dbms_output.put_line('no data found');  
PROCEDURE    20 end show_employee;  
PROCEDURE    21  
PROCEDURE    22  
//  
//我们来执行一下show_employee这个存储过程:  
exec show_employee('7788');  
information of7788 are:  
empno:7788,ename:SCOTT,deptno:20  
PL/SQL procedure successfully completed 
















































































    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle异常(预定义异常,自定义异常)应用介绍
  • Oracle将查询的结果放入一张自定义表中并再查询数据
  • Oracle中用GROUPING SETS分组自定义汇总
  • Oracle返回表类型的自定义函数
  • 深入ORACLE变量的定义与使用的详解
  • Oracle中归档模式的定义简述
  • Oracle定义DES加密解密及MD5加密函数示例
  • Oracle10g 预定义主要角色
  • Oracle定义联合数组及使用技巧
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3