oracle刪除表空間和修改索引表空間
由於lob物件引起的表空間無法刪除。本來是要刪除DMS表空間,但是上面有LOB物件,而且表卻是在別的表空間DMS4上。解決的辦法就是將這些lob移動到DMS4表空間。
下面是解決過程
刪除使用者時報錯:
drop tablespace dms
第 1 行出現錯誤:
ORA-01549: 表空間非空, 請使用 INCLUDING CONTENTS 選項
SQL> drop tablespace dms including contents and datafiles;
drop tablespace dms including contents and datafiles
*
第 1 行出現錯誤:
ORA-22868: 具有 LOB 的表包含有位於不同表空間的段
檢查過程
檢查這個表空間上的Lob物件
SQL> select owner, table_name, column_name, tablespace_name
from dba_lobs
where tablespace_name = 'DMS';
已選擇6行。
另外再檢查下約束有沒有問題(因為這個問題常見,所以一併檢查了下)。
SQL> select 'alter table '||owner||'.'||table_name||' drop constraint '||constraint_name||' ;'
from dba_constraints
where constraint_type in ('U', 'P')
and (index_owner, index_name) in
(select owner, segment_name
from dba_segments
where tablespace_name = 'DMS');
未選定行
這是查表空間相關的索引語句:
SELECT 'ALTER INDEX PMS.' || INDEX_NAME || ' REBUILD TABLESPACE PMS_TB;' mysql
FROM DBA_INDEXES
WHERE TABLE_OWNER = 'PMS'
AND TABLESPACE_NAME = 'SCFCEB_TB';
SQL>
解決過程:
下面是我寫的指令碼,這個指令碼可以生成要用的語句。
select 'alter table ' || xtable || ' move tablespace DMS4 lob' || '(' ||
column_name || ') store as ( tablespace DMS4);'
from (select xtable, wmsys.wm_concat(column_name) column_name
from (select owner || '.' || table_name xtable,
column_name,
tablespace_name
from dba_lobs
where tablespace_name = 'DMS')
group by xtable)
結果如下:
alter table DMS4.xxxx move tablespace DMS4 lob(ERROR_TEXT) store as ( tablespace DMS4);
^………………
取消dms4在dms表空間上的限額,防止再出類似問題。
alter user dms4 quota 0 on dms;
原文地址:http://blog.csdn.net/bamuta/article/details/12492783
如果遇到不能alter 或 drop Lob型別索引的錯誤,這是因為你的表中BLOB或CLOB型別欄位,它會自動給這類資料增加所以,並且無法直接修改。可以用以下語句解決。
//先建立一個臨時表
CREATE TABLE T_TABLE1 AS SELECT* FROMTABLE1 ;
//刪除有LOB欄位的表
DROP TABLE TABLE1;
//重新建立剛剛的表
CREATE TABLETABLE1 AS SELECT* FROMT_TABLE1;
//刪除臨時表
DROP TABLET_TABLE1;
相關推薦
oracle刪除表空間和修改索引表空間
由於lob物件引起的表空間無法刪除。本來是要刪除DMS表空間,但是上面有LOB物件,而且表卻是在別的表空間DMS4上。解決的辦法就是將這些lob移動到DMS4表空間。 下面是解決過程 刪除使用者時報錯: drop tablespace dms 第 1 行出現錯誤:
DML -- 數據操縱預言: insert/delete/update --多表連接修改/.多表連接刪除/多表連接查詢-- truncate 和 delete的區別
color _id friend 增長 code 方法 spa 全部 join /* DML -- 數據操縱預言: insert/delete/update */ #一: 插入語句 /* 語法1: insert into 表名(列名,..,列名....)
Oracle三種table: 堆表Heap Table、索引組織表IOT和聚簇表Cluster
常用資料庫支援情況: Oracle支援堆表,索引組織表,聚簇表Cluster; PostgreSQL只支援堆表,不支援索引組織表; Innodb只支援索引組織表; MyISAM只支援堆表。 Oracle使用rowid資料型別儲存行地址,rowid可以分成兩種,分別適於不同的
Oracle建立資料庫與表空間和資料字典表的概念
(一)Oracle建立資料庫不同於MySQL Oracle建立資料庫主要有一下幾種方法: 第一種方法:使用Oracle的Database Configuration Assistant(資料庫配置助手
oracle刪除表字段和oracle表增加欄位
新增欄位的語法:alter table tablename add (column datatype [default value][null/not null],….); 修改欄位的語法:alter table tablename modify (column
oracle回滾段和回滾表空間
昨晚因為做了一個大批量的刪除,用的delete。大約用了6個小時,導致了回滾段自動擴充套件到將近30個G。(以後記著,做大批量刪除的時候,一定要用指令碼實現,分批量提交事務。那樣就不會佔用太多的UNDO表空間了!) 從網上搜了一個普遍的方法,更換新的UNDO表空間,然後刪
Oracle刪除當前使用者下的所有表、檢視、序列、函式、儲存過程、包(轉)
最近在用oracle,發現了一個批量刪除資料庫中的各種結構的好方法。 --delete tables select 'drop table ' ||&
本地管理表空間和字典管理表空間的特點,ASSM有什麼特點
字典管理表空間(Dictionary-Managed Tablespace簡稱DMT),8i以前包括以後都還可以使用的一種表空間管理模式,通過資料字典管理表空間的空間使用。 Oracle使用兩個字典來記錄Extents的使用情況:SYS.FET$記錄空閒的Extents
java poi操作word模版檔案生成表單和修改
使用java poi進行模版檔案的上傳,生成表單,重新生成檔案。同時包括表單中含有下拉框等選項的處理。 XWPFDocument物件POI是apache提供的可以操作word文件的第三方jar。POI能操作word是使用XWPFDocument物件。XWPFDocumen
mysql約束和修改資料表
FOREIGN KEY(外來鍵約束)要求: 1.父表子表必須使用相同的儲存引擎,而且禁止使用臨時表。 2.資料表的儲存引擎只能為INNODB. 3.外來鍵列於參照列必須具有相似的資料型別。數字長度和是否有符號位必須相同; 字元的長度可以不同。 4.外來鍵列和參照列必須建立索
MySQL 約束和修改資料表
1. FOREIGN KEY(外來鍵約束):保持資料的一致性,完整性。實現資料表的一對一,一對多的關係。 a) 父表(子表所參照的表)和子表(具有外來鍵列的表)必須使用相同的儲存引擎,
Oracle 刪除一個使用者下的所有表、觸發器、約束
select 'drop table '||table_name||' cascade constraints;' from user_tables; select 'drop trigger ' || trigger_name || ';' from user_
MySQL 復制表結構和復制表結構,數據
只需要 復制 索引 語句 reat 完整 sql 需求 滿足 有時候有這樣的需求,只需要復制表的結構,有時候復制表的數據和結構,那麽怎麽同時滿足這樣的要求呢,這樣的代碼怎麽寫呢? 使用 SHOW CREATE TABLE 命令獲取創建數據表(CREAT
[轉帖]Oracle字符集的檢視與修改 --- 還未嘗試 找個週六 試試. Oracle 字符集的檢視和修改
Oracle 字符集的檢視和修改 感謝原作者 改天試試 https://www.cnblogs.com/rootq/articles/2049324.html 一、什麼是Oracle字符集 Or
Oracle 字符集的檢視和修改
Oracle字符集是一個位元組資料的解釋的符號集合,有大小之分,有相互的包容關係。ORACLE 支援國家語言的體系結構允許你使用本地化語言來儲存,處理,檢索資料。它使資料庫工具,錯誤訊息,排序次序,日期,時間,貨幣,數字,和日曆自動適應本地化語言和平臺。
檢視oracle資料庫是否歸檔和修改歸檔模式
分為非歸檔模式(NOARCHIVELOG) 和歸檔模式(ARCHIVELOG)。非歸檔模式不產生歸檔日誌,雖然節省了硬碟空間,但是備份方案選擇很有限,通常只能選擇冷備份。還原也只能還原到備份那一時刻的資料,通常也僅在開發時使用(據說在資料倉庫中也使用),Oracle安裝預設
mybatis批量新增、刪除、查詢和修改
每次寫批量的時候,都要在網上搜索一下,雖然都做過多次了,但具體的自己還是記不住(汗顏),所以索性今天就記錄下來。 前期說明: foreach的主要用在構建in條件中,它可以在SQL語句中進行迭代一個集合。foreach元素的屬性主要有 item,inde
sql 複製表結構和複製整個表資料
1. 複製表結構及其資料: create table table_name_new as select * from table_name_old 2. 只複製表結構: create table table_name_new as select * from ta
Oracle資料庫檢視編碼和修改編碼
首先檢視oracle資料庫的編碼 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER -------------------- VALUE
oracle中游標的屬性和修改預設遊標的大小
/* 1、游標的屬性 %found %notfound %isopen 判斷游標是否開啟 %rowcount 影響的行數 2、游標數的限制:預設情況下,oracle資料庫只有300個游標 */ --set serveroutput on declare --定義游標 cu