保存在数据库中
通过 v$dba_source可以查看
例如:select * from dba_source t WHERE t.owner = 'SCOTT';
通过 v$dba_source可以查看
例如:select * from dba_source t WHERE t.owner = 'SCOTT';
解决方案 »
- 从oracle数据库导出文本文件中文乱码
- 不同位置的控制文件,可以互相换用吗?
- 怎样把oralce9i中的表、自定义类型的结构导出成XML Schema文件或DTD文件
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误
- 关于exp和imp命令的使用问题
- 关于linux下oracle9i服务器和windows下oracle9i客户端联接的问题
- 请问如何判断进程是否已经死锁了?
- 如何提高两个表有相关字段的查询效率?急
- oracle两个数据库的相互导数据
- 初学WebLogic,出现一个问题,求大神解答
- 请问Oracle的问题???
- 一个关联问题,小弟不知道如何做
以下是视图dba_source的source,主要的信息都集中在sys.obj$ o, sys.source$ s, sys.user$ u
三个表中:
create or replace view dba_source
(owner, name, type, line, text)
as
select u.name, o.name,
decode(o.type#, 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
11, 'PACKAGE BODY', 13, 'TYPE', 14, 'TYPE BODY',
'UNDEFINED'),
s.line, s.source
from sys.obj$ o, sys.source$ s, sys.user$ u
where o.obj# = s.obj#
and o.owner# = u.user#
and o.type# in (7, 8, 9, 11, 13, 14)
union
select u.name, o.name, 'JAVA SOURCE', s.joxftlno, s.joxftsrc
from sys.obj$ o, x$joxfs s, sys.user$ u
where o.obj# = s.joxftobn and o.owner# = u.user#
and o.type# = 28
select * from dba_data_files
查询表空间的信息(当前用户必须拥有DBA角色)。
select owner , object_name ,object_type from all_objects
查询某一用户下的所有表、过程、函数等信息。
"USER."视图中记录通常记录执行查询的帐户所拥有的对象的信息,
"ALL."视图中记录包括"USER"记录和授权至PUBLIC或用户的对象的信息,
"DBA."视图包含所有数据库对象,而不管其所有者。
①.查看已经存在的“存储过程”、“存储函数”或“包”名称
SQL> select distinct name from user_source where type in ('FUNCTION','PACKAGE','PROCEDURE');NAME
------------------------------
FUC_GETFEE
PKG_TEST
PRC_TEST
TRIMSQL>
②.查看“存储过程”、“存储函数”或“包”的内容
SQL> set pagesize 5000;
SQL> select line,' ',text from user_source where name=upper('fuc_getfee'); LINE '' TEXT
---------- ----- --------------------------------------------------------------------------------
1 FUNCTION fuc_getFee(str IN CHAR)
2 RETURN INTEGER
3 AS
4 value VARCHAR2(128);
5 fee INT:=-1;
6 loopCount INT:=0;
7 loopBegin INT:=1;
8 loopEnd INT:=0;
9 BEGIN
10 loopEnd:=LENGTH(str);
11 FOR loopCount IN 1..loopEnd LOOP
12 IF substr(str,(loopCount+1),1)='=' THEN 13 loopBegin:=loopCount+1; 14 END IF; 15 END LOOP;
16 IF loopBegin<>0 THEN
17 value:=trim(substr(str,loopBegin+1,loopEND-loopBegin-1)); 18 --fee:=trunc(TO_NUMBER(value)); 19 fee:=to_number(value); 20 --DBMS_OUTPUT.PUT_LINE('*' || value || '*'); 21 END IF;
22
23 RETURN fee;
24 END fuc_getFee;24 行 已选择