如何匯出Oracle乙個使用者中所有表的表結構

2022-01-11 08:54:33 字數 2821 閱讀 4598

一、

exp userid=bx81/bx81 owner=bx81;

imp userid=bx81/bx81 full=y indexfile=bx8.sql;

注意著時imp並沒有真正寫入資料庫,而是將ddl寫在bx8.sql裡。

二、用下面的指令碼可以生成某個使用者下的表的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 /三、

使用第三方的工具,如toad,會便利一些。

Oracle 中如何刪除乙個使用者擁有的所有物件

下面的指令碼在oracle中如何將乙個使用者所擁有的所有物件,表,sequence,procedure。全部刪掉。1,drop 物件的方式,注意要先將所有的外來鍵約束刪掉。declare type cst table list is table of varchar2 40 type cst lis...

新建乙個使用者操作oracle

今天出現了乙個問題,linux下root使用者不能切換到oracle使用者,但是能切換到其他的使用者,症狀如下 root localhost su oracle root localhost root localhost who am i root pts 1 2010 10 08 10 53 19...

如何製作乙個使用者控制項?

vs竟然不提供直線和長方形這種常用的控制項,吐槽乙個!如何自作乙個呢,很簡單,其實控制項就像乙個windows,我們把windows看成乙個長方形,填充我們需要的顏色,不就是乙個長方形嗎,把長方形拉長拉細,不就是一條直線嗎?public partial class line usercontrol ...