請問oracle 怎么生成腳本?

wazdoyang 2008-12-08 10:04:57
對表 生成create 腳本 ,我想拿到別的機器執行,不采用備份 可以嗎?
我用的是plsql 英文版,客戶端也安裝了
...全文
207 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vvnet 2008-12-08
  • 打赏
  • 举报
回复
PlsqlDev菜单->工具->导出
弹出的对话框中选择你要导出的表,窗口的下面选择表结构,去掉数据,
点击执行,把执行的结果保存一下就Ok了
wazdoyang 2008-12-08
  • 打赏
  • 举报
回复
呵呵 看到樓上的DDL 我知道怎么辦了 我看見PL sql 里有一個 ddl
sleepzzzzz 2008-12-08
  • 打赏
  • 举报
回复
用工具吧,比如说toad,powerdesigner

powerdesigner可以使用反向工程,很方便.

也可以试试下面这段代码:
用下面的脚本可以生成某个用户下的表的DDL语句: 
set arraysize 1
set echo off
set heading off
set feedback off
set verify off
set pagesize 0
set linesize 79
define 1 = &&SCHEMA_NAME
spool tbl_&&SCHEMA_NAME
set termout off
col x noprint
col y noprint
select 'rem **** Create Table DDL for '||chr(10)||
'rem **** '||username||''''||'s tables'||chr(10)||chr(10)
from dba_users
where username = upper ('&&1')
/
select table_name y,
0 x,
'create table ' ||
rtrim(table_name) ||
'('
from dba_tables
where owner = upper('&&1')
union
select tc.table_name y,
column_id x,
rtrim(decode(column_id,1,null,','))||
rtrim(column_name)|| ' ' ||
rtrim(data_type) ||
rtrim(decode(data_type,'DATE',null,'LONG',null,
'NUMBER',decode(to_char(data_precision),null,null,'('),
'(')) ||
rtrim(decode(data_type,
'DATE',null,
'CHAR',data_length,
'VARCHAR2',data_length,
'NUMBER',decode(to_char(data_precision),null,null,
to_char(data_precision) || ',' || to_char(data_scale)),
'LONG',null,
'******ERROR')) ||
rtrim(decode(data_type,'DATE',null,'LONG',null,
'NUMBER',decode(to_char(data_precision),null,null,')'),
')')) || ' ' ||
rtrim(decode(nullable,'N','NOT NULL',null))
from dba_tab_columns tc,
dba_objects o
where o.owner = tc.owner
and o.object_name = tc.table_name
and o.object_type = 'TABLE'
and o.owner = upper('&&1')
union
select table_name y,
999999 x,
')' || chr(10)
||' STORAGE(' || chr(10)
||' INITIAL ' || initial_extent || chr(10)
||' NEXT ' || next_extent || chr(10)
||' MINEXTENTS ' || min_extents || chr(10)
||' MAXEXTENTS ' || max_extents || chr(10)
||' PCTINCREASE '|| pct_increase || ')' ||chr(10)
||' INITRANS ' || ini_trans || chr(10)
||' MAXTRANS ' || max_trans || chr(10)
||' PCTFREE ' || pct_free || chr(10)
||' PCTUSED ' || pct_used || chr(10)
||' PARALLEL (DEGREE ' || DEGREE || ') ' || chr(10)
||' TABLESPACE ' || rtrim(tablespace_name) ||chr(10)
||'/'||chr(10)||chr(10)
from dba_tables
where owner = upper('&&1')
order by 1,2
/
wazdoyang 2008-12-08
  • 打赏
  • 举报
回复
我就是想用 第三方工具 直接生成 你那樣的create 腳本
但是我不會用 ,我剛用oracle而已
pl/sql 行嗎
chenqingyu 2008-12-08
  • 打赏
  • 举报
回复
select dbms_metadata.getddl('TABLE','表名') from dual;  --一个表
select dbms_metadata.getddl('TABLE',table_name) from user_tables; --用户所有表


如果你有第三方工具就更容易了.

cosio 2008-12-08
  • 打赏
  • 举报
回复
第三方工具直接把SQL保存起来就可以了!
chenqingyu 2008-12-08
  • 打赏
  • 举报
回复
pl sql里有直接导脚本的选项....很简单的...

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧