emp comm number(22)
emp deptno number(22)
salgrade grade number(22)
salgrade losal number(22)
salgrade hisal number(22)
19 rows selected
sql>
从oracle 9i开始,可以使用dbms_metadata.get_ddl来找到对象的定义,例如:
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> @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 命令