网站首页 > 文章中心 > 其它

oracle移动表怎么用

作者:小编 更新时间:2023-08-21 13:39:04 浏览量:199人看过

oracle数据库中如何将表移动到另一个表空间

首先,使用下面的命令移动:

alter table table_name move tablespace tablespace_name;

然后,如果有索引的话必须重建索引:

alter index index_name rebuild tablespace tablespace_name;

当然,可以使用spool来帮助实现多个表的操作.

set header off;

spool /export/home/oracle/alter_tables.sql;

select 'alter table ' || object_name || ' move tablespace users'

from dba_object

where owner = 'XXX' and object_type = 'TABLE';

spool off;

之后执行此sql脚本即可.

同样对于index也做同样的操作.

oracle中怎么用存储过程的的方法 把一个用户里的一个表移到另一个用户里

一楼的回答不一定是提问者要的吧. 第一帖试着回答,不知掉百度问答好玩不好玩..

有几种方法可以做,一种是1楼回答的,建user,授权,然后imp/exp

针对于对你的问题的理解这是我的方法:

假设想从user A 移表C到user B.

此处楼主没有说清楚,是同一个instance里的俩个不同user,还是俩个不同instance里的不同user.

如果不同instance里的不同user,以下方法里用了db link的方法

① 俩个user存在, 并且有相关权限,比如create session etc, 因为你有需要从一个user中去访问另个user,所以Grant select,insert等你需要的权限给另外个user,比如在user B里执行:

grant insert on C to A;

①.). 手动建表,和moreazy做法一样, 在user B里执行create table C as select * from userA where rownum1;

好了,全部的思路,以下是伪代码是最简单的类型,不考虑性能等等,至少简单逻辑,没时间测,顺手一写:

set serveroutput on;

DECLARE

v_count NUMBER(10);

BEGIN

-- check dblink

v_sql := 'select count(*) from all_db_links where db_link=upper('''||v_dblink||''')';

EXECUTE IMMEDIATE v_sql INTO v_count;

IF v_count = 0 THEN

v_message := 'db link '''||v_dblink||''' does not exist.';

DBMS_OUTPUT.PUT_LINE(v_message);

ELSE

v_sql := 'INSERT INTO C

EXECUTE IMMEDIATE v_sql;

COMMIT;

EXCEPTION WHEN OTHERS THEN

v_message := SQLERRM(SQLCODE);

END;

END IF;

/

怎样移动Oracle数据库的表空间

扩展临时表空间:

方法第一段:增大临时文件大小:

sql

alter

database

tempfile

'/u01/app/oracle/oradata/orcl/temp01.dbf'

resize

①.00m;

方法第二段:将临时数据文件设为自动扩展:

autoextend

on

next

maxsize

unlimited;

方法第三段:向临时表空间中添加数据文件:

tablespace

temp

add

oracle如何移动表空间?

表空间是数据库里一个逻辑存储结构,其对应物理结构是数据文件,一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间.

您所问的表空间在D盘、E盘的 实际上是数据文件所在的位置.

-- 好了,全部的对于 表空间和数据文件的一个简单的感念,希望lz能先弄明白这个.

-- 移动表空间看完小编介绍的go语言中数组的寻址有两种办法.一种联机,一种脱机.分别介绍如下:

脱机(可以移动任何表空间中的数据文件,命令为alter database rename file)

SQLshutdown

SQLstartup mount

alter database rename file 'D:/xxxxx' to 'E:/xxxxx'

(注意在alter open之前不要退出)

SQLalter database open;

二:联机(不可移动system表空间,回滚段和临时表空间中的数据文件,命令为alter tablespace )

SQL conn / as sysdba

SQL alter tablespace xxxx offline;

以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章