sqlclob
A. sql的oracle的clob怎麼插入大於4000長度的數據我在sqlplus中執行插入報錯or
lz參考下面的步驟
--clob測試表
createtablet_clob(seqint,strclob);
insertintot_clobselectrownum,rpad('a',4000,'*')strfromalconnectbyrownum<=10;
updatet_clobsetstr=str||rpad('b',4000,'*')||rpad('c',4000,'*');
commit;
select*fromt_clob;
--源資料庫
--1.將clob欄位的數據按4000轉為多行保存到臨時表中
createtablet_clob_bakas
SELECTseq,cast(substr(str,(level-1)*4000,4000)asvarchar2(4000))str
FROMt_clob
CONNECTBYLEVEL<=trunc(length(str)/4000)
ANDPRIORseq=seq
ANDpriordbms_random.valueISNOTNULL;
select*fromt_clob_bak;
--2.將t_clob_bak導出t_clob_bak.sql文件(create+insert腳本)
--目標資料庫
--1.執行t_clob_bak.sql,創建和導入臨時表數據
--2.執行下面sql,將臨時表數據轉換到正式表t_clob
insertintot_clob
SELECTseq,str
FROM(SELECTseq,
wm_concat(str)over(PARTITIONBYseqORDERBYrownum)str,
row_number()over()rn
FROMt_clob_bak)
WHERErn=1;
B. 資料庫中clob的類型sql怎麼查詢
在絕大多數情況下,使用2種方法使用CLOB
1 相對比較小的,可以用String進行直接操作,把CLOB看成字元串類型即可
2 如果比較大,可以用 getAsciiStream 或者 getUnicodeStream 以及對應的 setAsciiStream 和 setUnicodeStream 即可
讀取數據
1 ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");
2 rs.next();
3 Reader reader = rs.getCharacterStream(2);
C. 資料庫CLOB型欄位是什麼數據類型
SQL CLOB為內置類型,它將字元大對象(Character Large Object)存儲為資料庫表某一行中的一個列值。
默認情況下,驅動程序使用SQL locator(CLOB)實現Clob對象,這意味著CLOB對象包含一個指向SQL CLOB數據的邏輯指針而不是數據本身。Clob對象在它被創建的事務處理期間有效。
內置類型指任何語言在設計初期定義的類型,如c語言中的int,double, char,它也是在一種語言中最基本的類型,與編譯器編譯出的代碼具有重大關系。
(3)sqlclob擴展閱讀
JAVA裡面對CLOB的操作
在絕大多數情況下,使用2種方法使用CLOB
1、相對比較小的,可以用String進行直接操作,把CLOB看成字元串類型即可。
2、如果比較大,可以用getAsciiStream或者getUnicodeStream以及對應的setAsciiStream和 setUnicodeStream即可。
在一些資料庫系統里,也使用Text作為CLOB的別名,比如SQL Server。
D. oracle把一列該成clob欄位的sql語句怎麼寫
oracle不可以將欄位類型修改為:object、REF、nested table、VARRAY、 CLOB、BLOB。
解決方案也很簡單就是像學數據結構時經常用到的兩變數(a,b)交換值的方法,c = a, a = b, b = c。當然我們這里可以簡單處理,具體方法如下:
1、將欄位a改名為_a
2、新建一個欄位a,用正確的類型
3、將_a欄位中的數據經一定轉換(一般要做轉換的,因為類型變了)後插入了a欄位中
4、刪除_a欄位
如果表中或該欄位中還沒有數據,那就更簡單了,把那個欄位刪除再以正確的數據類型新建一個即可。
E. clob oracle.sql.CLOB cannot be cast to oracle.sql.CL
其實你使用odbc14.jar驅動包後,是可以用String類型來直接讀取CLOB欄位的,如String clob_field=rs.getString("clob_field");
F. oracle 存儲過程里用 execute immedate 動態sql,更新一個表的clob欄位報字元長度
sql裡面varchar2最多4000個位元組,sql語句最多32K長度,估計是你的a_clob太長,放到sql裡面超過這個限制了,具體是哪個原因還得你自己測試。
可以使用綁定變數的方式來做。
V_SQL := 'UPDATE B '|| ' SET B_CLOB = ''' || AA.A_CLOB ||''' WHERE B_KEY = '''|| AA.A_KEY || '''';
EXECUTE IMMEDIATE V_SQL;
改成:
V_SQL := 'UPDATE B SET B_CLOB =:1 WHERE B_KEY =:2 ';
EXECUTE IMMEDIATE V_SQL using AA.A_CLOB,AA.A_KEY;
G. sql如何添加有Clob的欄位
CLOB這個類型就是使用CHAR來保存數據的,把nvarchar類型數據插入到oracle對應的CLOB類型中只要加個to_char()轉換下就可以了
H. oracle sql怎麼修改clob類型里的內容
修改全部內容還是部分內容。
全部修改的話,就當作nvarchar欄位修改了。
普通的update語句就可以了。
部分內容修改的話,可以用
update
表
set
欄位=regexp_replace(欄位,'修改目標內容','查找正則表達式')
where
條件
這個有一個不好的地方,就是全部替換,否則,就要把這個函數的參數,正則表達式寫的完美一點。
I. sqlserver用哪個類型存儲clob
SQL 類型 CLOB 在 JavaTM 編程語言中的映射關系。SQL CLOB 是內置類型,它將字元大對象 (Character Large Object) 存儲為資料庫表某一行中的一個列值。默認情況下,驅動程序使用 SQL locator(CLOB) 實現 Clob 對象,這意味著 CLOB 對象包含一個指向 SQL CLOB 數據的邏輯指針而不是數據本身。Clob 對象在它被創建的事務處理期間有效 在SQL Server里,也使用Text 作為CLOB的別名,
CLOB使用CHAR來保存數據。 如:保存XML文檔。
J. oracle.jdbc.OracleClob與oracle.sql.CLOB的區別
oracle 的欄位類型和 Java的對應數據類型而已。