oralce datatype-long
對系統做了分割槽表,想獲取分割槽表的分割槽欄位的具體範圍資訊,找了很多表都無法找到這個資訊。最後再看英文資料,發現其實該資訊就藏在tabpart$這個表中,從檢視上看就是在[dba/user]_tab_partitions 這個裡面。但是卻是以long的資料型別儲存的。想要檢視這個欄位的具體的值就必須將long型別轉換成可檢視的方式。
如何檢視呢?最終在asktom上找到了一個函式,可以得到對應行的long的值。
create or replace function getlong( p_tname in varchar2,
p_cname in varchar2,
p_rowid in varchar2 ) return varchar2
as
l_cursor integer default dbms_sql.open_cursor;
l_n number;
l_long_val varchar2(4000);
l_long_len number;
l_buflen number := 4000;
l_curpos number := 0;
begin
dbms_sql.parse( l_cursor,
'select ' || p_cname || ' from ' || p_tname ||
' where rowid = cast(:x as rowid)',
dbms_sql.native );
dbms_sql.bind_variable( l_cursor, ':x', p_rowid );
dbms_sql.define_column_long(l_cursor, 1);
l_n := dbms_sql.execute(l_cursor);
if (dbms_sql.fetch_rows(l_cursor)>0)
then
dbms_sql.column_value_long(l_cursor, 1, l_buflen, l_curpos ,
l_long_val, l_long_len );
end if;
dbms_sql.close_cursor(l_cursor);
return l_long_val;
end getlong;
建立這個函式後,執行:
select getlong('sys.tabpart$', 'hiboundval', cast(rowid as varchar2(255))) from sys.tabpart$ tp;即可得到所要檢視的資訊。
不知道是不是還要在函式中指定什麼引數,在普通資料庫使用者下,想在函式中執行對tabpart$表的查詢似乎不成功。
於是建立同義詞來解決這個問題。
在sys下授權select tabpart$表的許可權給普通使用者後,再在這個普通使用者下建立這個表的同義詞:create synonym tabpart$ for sys.tabpart$;即可。
後面可直接呼叫該函式,下面一句SQL語句是用來批次重新命名分割槽的:
select bb.*, 'alter table ' || bb.name || ' rename partition ' || bb.subname || ' to ' || bb.new_partname || ';' from (
select aa.name, aa.subname, 'part_' || substr(aa.name, 4, length(aa.name)) || '_' || to_char(add_months(aa.part_range, -1), 'yyyymm') new_partname
from (select o.name, o.subname, to_date(substr(getlong('sys.tabpart$', 'hiboundval', cast(tp.rowid as varchar2(255))), 11, 19), 'yyyy-mm-dd hh24:mi:ss') part_range
from sys.tabpart$ tp, sys.obj$ o
where tp.obj# = o.obj#
and o.name in('XX', 'YY','ZZ)
order by o.name ) aa) bb
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-547184/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oralce SQL hintSQL
- Oralce RU 安裝
- oralce函式大全函式
- oralce轉義字元字元
- GoldenGate Oralce到MSSQLGoSQL
- 要學習ORALCE了
- Oralce OMF 功能詳解
- Oralce建立模擬資料
- Oralce中分析表及索引索引
- Oralce 分頁 三種實現
- oralce 匯出csv格式檔案
- 設定oralce時間戳格式時間戳
- ORALCE的執行計劃穩定性
- oralce觸發器解決問題觸發器
- oralce 10g中的segment type
- Oralce之PL/SQL程式設計(遊標)SQL程式設計
- oralce之 10046對Hash Join分析
- Oralce中設定小數點位數
- oralce資料庫建立dblink連結資料庫
- oralce 從檔案系統遷移到ASMASM
- ORALCE的執行計劃穩定性(zt)
- oralce 10g閃回學習(一)
- 兩塊磁碟,oralce執行慢的問題
- Oralce 10g 使用DBCA建立資料庫資料庫
- oralce動態維護資料庫的序列資料庫
- kingsql 如何修改Oralce日誌檔案大小SQL
- Oralce 資料庫的災難恢復(轉)資料庫
- PL/SQL 連線 Oralce 提示 Could not initialize oci.dllSQL
- Oralce 使用SQL中的exists 和not exists 用法詳解SQL
- Oralce記憶體資料庫TimesTen簡介記憶體資料庫
- oralce備份與恢復1 控制檔案(轉)
- ORALCE函式:LAG()和LEAD() 分析函式詳解函式
- oralce11g客戶端安裝(靜默方式)客戶端
- ORALCE 的AUDIT 以及開啟AUDIT對REDO 的影響
- Oralce public access 許可權的回收後影響分析
- 專家分享oralce資料庫業務最佳化心得資料庫
- 與oralce開發相關的不錯的網站網站
- 空字串和空格字串在informix和oralce 的差異字串ORM