频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

实例讲解如何查找某个对象的定义情况

来源:pcdog 作者:佚名 出处:巧巧读书 2008-03-13 进入讨论组
上一页 1 2 3 

精华网络内容 :http://www.qqread.com/network/


 
  大家需要注意,这个查询是需要临时表空间的,所以如果临时表空间不够查询就会有问题了:
 
  

 SQL> @C:\TEMP\get_obj_sql.sql
SQL> set heading off echo off pages 10000 long 90000
输入 object_type 的值:  TABLE
输入 object_name 的值:  DEPT
输入 object_owner 的值:  LUNAR
原值    1: select dbms_metadata.get_ddl(upper('&OBJECT_TYPE'),upper('&OBJECT_NAME'),upper('&OBJECT_O
WNER')) from dual
新值    1: select dbms_metadata.get_ddl(upper('TABLE'),upper('DEPT'),upper('LUNAR')) from dual
ERROR:
ORA-25153: 临时表空间为空
ORA-06512: 在"SYS.DBMS_LOB", line 424
ORA-06512: 在"SYS.DBMS_METADATA", line 557
ORA-06512: 在"SYS.DBMS_METADATA", line 1221
ORA-06512: 在line 1

未选定行

SQL>
SQL> SELECT NAME FROM V$TEMPFILE;

未选定行

SQL> SELECT NAME FROM V$TABLESPACE;

NAME
------------------------------
SYSTEM
UNDOTBS1
TEMP
INDX
USERS

SQL> ALTER TEMPORARY TABLESPACE TEMP ADD TEMPFILE 'D:\oracle92\oradata\test1\TEMP01.DBF' SIZE 10M;
ALTER TEMPORARY TABLESPACE TEMP ADD TEMPFILE 'D:\oracle92\oradata\test1\TEMP01.DBF' SIZE 10M
      *
ERROR 位于第 1 行:
ORA-00940: 无效的 ALTER 命令

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\oracle92\oradata\test1\TEMP01.DBF' SIZE 10M;

表空间已更改。

SQL> @C:\TEMP\get_obj_sql.sql
SQL> set heading off echo off pages 10000 long 90000
输入 object_type 的值:  TABLE
输入 object_name 的值:  EMP
输入 object_owner 的值:  LUNAR
原值    1: select dbms_metadata.get_ddl(upper('&OBJECT_TYPE'),upper('&OBJECT_NAME'),upper('&OBJECT_O
WNER')) from dual
新值    1: select dbms_metadata.get_ddl(upper('TABLE'),upper('EMP'),upper('LUNAR')) from dual

  CREATE TABLE "LUNAR"."EMP"
   (    "EMPNO" NUMBER(4,0) NOT NULL ENABLE,
        "ENAME" VARCHAR2(10),
        "JOB" VARCHAR2(9),
        "MGR" NUMBER(4,0),
        "HIREDATE" DATE,
        "SAL" NUMBER(7,2),
        "COMM" NUMBER(7,2),
        "DEPTNO" NUMBER(2,0)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "SYSTEM"

SQL>
SQL>

 
  dbms_metadata.get_ddl也可以用来查询其他对象的创建语句,使用的方法如下;
 
  
 select dbms_metadata.get_ddl('对象类型','对象名','用户名') from dual;

 
  例如:
 
  
 oracle@cs_db02:/arch1/lunar/tools > get_obj_sql.sh procedure aa misc
Connected.

CREATE OR REPLACE PROCEDURE "MISC"."AA" is
begin
delete from error_tip;
end aa;
 

进入讨论组讨论。
上一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章