2013-01-05 105 views
0

我想通過'reverse'函數幫助我們在oracle中反轉clob數據類型的值,就像我們爲字符串數據類型字段一樣。是否有任何內置的方法.Google沒有太大的幫助。成爲新手sql不知道它是否可能?我最初以爲 該「反向」功能可用於CLOB數據類型字段還但其不工作,這裏是我有tried-如何在oracle sql中反轉clob數據類型的值?

drop table test; 
create table test 
(
    name varchar2(4000), 
    description clob 
) 

insert into test values ('aadinath','I have to reverse a clob data type value') 

select reverse(name) from test; 

輸出= htanidaa

select reverse(name), reverse(description) from test; 

的例子輸出= ORA-00932:不一致的數據類型:期望的CHAR得到CLOB 00932. 00000 - 「不一致的數據類型:預期的%s得到%s」

+0

將'clob'反向? – bonCodigo

+0

已更新的問題 – sandy

回答

3

您首先需要convertclobvarchar2。然後執行reverse

Reference 1:

到CLOB數據類型轉換成VARCHAR()的函數是DBMS_LOB。 DBMS_LOB包提供了對BLOB,CLOB,NCLOB,BFILE和臨時LOB進行操作的子程序。您可以使用DBMS_LOB來訪問和操作LOB的特定部分或完整的LOB。 DBMS_LOB可以讀取和修改BLOB,CLOB和NCLOB;它提供了BFILE的只讀操作。

語法:

DBMS_LOB.SUBSTR (lob_loc, amount, offset) 
dbms_lob.substr(clob_column, for_how_many_bytes, from_which_byte); 

參數說明:

  • lob_loc:定位爲LOB被讀取即CLOB列名。
  • amount:要讀取的字節數(用於BLOB)或字符(用於CLOB)。
  • 偏移量:從LOB開始的字節(對於BLOB)或字符(對於CLOB)的偏移量。

例子:

CREATE OR REPLACE VIEW temp_view 
    AS 
    SELECT 
    column1, -- datatype numeric 
    column2, -- datatype varchar() 
    DBMS_LOB.SUBSTR(column3, 2000,1) as column3, -- datatype CLOB 
    column4 -- datatype numeric 
    FROM temp_table; 

注意:在這個例子中,我第一次讀2000 charactres。

相關問題