【正文】
查看放在 ORACLE的內(nèi)存區(qū)里的表 SQL。Y39。0。select index_name,index_type,table_name from user_indexes order by table_name。select * from user_ind_columns where index_name=upper(39。index_name39。 查看索引的大小 SQL。amp。)。select * from user_sequences。select view_name from user_views。set view_name,text_length from user_views。set long 2022。select text from user_views where view_name=upper(39。view_name39。 六、同義詞 查看同義詞的名稱 SQL。 七、約束條件 查看某表的約束條件 SQL。amp。)。select , from user_constraints c,user_cons_columns cc where = upper(39。table_owner39。amp。) and = and = order by 。select object_name,status from user_objects where object_type=39。 SQL。PROCEDURE39。select text from all_source where owner=user and name=upper(39。plsql_name39。 Oracle 數(shù)據(jù)庫沒有提供直接修改表中列名稱的功能,但在實際使用時常需要修改表的列名和列順序,不得已有些 Oracle的使用人員用重新創(chuàng)建一個新的具有正確列名和順序的數(shù)據(jù)庫表,再將舊表的數(shù)據(jù)轉(zhuǎn)儲進來,最后刪除舊表并將新表重命名為舊表的方法來完成此功能。實際上我們可以從數(shù)據(jù)字典中直接修改表列的名稱和順序。 SQLCREATE TABLE AS SELECT EMPNO,ENAME FROM 。 2.查詢表中列的實際存儲位置或表。 SQLSELECT TEXT FROM ALL_VIEWS WHERE VIEW_NAME = ‘ USER_TAB_COLUMNS’ 。 3.從數(shù)據(jù)字典視圖 ALL_OBJECTS 中查找對象 ID。 4.根據(jù) ID,從 $檢索出表中列的 定義信息。 OBJ COL NAME 13888 1 EMPNO 13888 2 ENAME 5.使用 Update語句來進行修改。 UPDATE $ SET COL = 1,NAME=‘ EMP_NAME’ WHERE OBJ = 13888 AND NAME =‘ ENAME’ 。 6. 重啟數(shù)據(jù)庫服務(wù)。 ”,會發(fā)現(xiàn)好像并沒有修改。 SQLSHUTDOWN SQLSTARTUP 這時,再查看,就會發(fā)現(xiàn)修改已經(jīng)成功。 EMP_NAME EMP_NO SMITH 7369 ALLEN 7499 WARD 7521 ?? 這種方法直接從數(shù)據(jù)庫中進行表列定義的修改,存在一定風(fēng)險,但它對于數(shù)據(jù)量特別大的表是非常有用的。下面筆者寫了一段簡單的存儲過程,可實現(xiàn)表中列的重命名。 create or replace procedure (schmaname in varchar2, tabname in varchar2, oldcolname in varchar2, newcolname in varchar2) is n_schmaname varchar2(30)。 表名稱 n_oldcolname varchar2(30)。 新的列名稱 n_objnum number。 n_tablename := upper(tabname)。 n_newcolname := upper(newcolname)。 UPDATE $ SET NAME=n_newcolname WHERE OBJ = n_objnum AND NAME=n_oldcolname。 end altercolnam