1、首先打開plsql,連接上oracle數(shù)據(jù)庫,假設(shè)有一張數(shù)據(jù)庫表叫做 tblTest,通過sql查詢也可以看出,這里面是有測試數(shù)據(jù)的。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、馬龍網(wǎng)絡(luò)推廣、小程序制作、馬龍網(wǎng)絡(luò)營銷、馬龍企業(yè)策劃、馬龍品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供馬龍建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
2、oracle數(shù)據(jù)庫添加列,比如,往測試表 tblTest 添加一個 日期類型的列 UpdateDate,sql語句就可以像下面這樣實(shí)現(xiàn),寫完SQL之后,選中這一行sql,點(diǎn)擊plsql左上角次輪狀的圖標(biāo)執(zhí)行sql語句:alter table TBLTEST add UpdateDate date;
3、執(zhí)行成功之后,通過 select * from TBLTEST ,就能看到新添加的列默認(rèn)都是空值。
4、oracle數(shù)據(jù)庫刪除列,比如,將上一步添加的 UpdateDate 列刪除掉,就可以使用下面的sql語句修改表:alter table tbltest drop column updatedate;
5、執(zhí)行成功后,再次使用 select * from TBLTEST ,就能看到 UpdateDate 列已經(jīng)刪除了。
6、oracle數(shù)據(jù)庫修改列屬性,比如,將測試表 tblTest 中 INTEGER 類型的 ITEMNUM 列修改為 number 類型,就可以使用下面的SQL語句:alter table tbltest modify ITEMNUM number;
7、在左側(cè) tbltest 表名上,點(diǎn)擊鼠標(biāo)右鍵,選擇【Edit】選項(xiàng),
8、然后在右側(cè)出現(xiàn)的窗口中,點(diǎn)擊【Columns】標(biāo)簽頁,就能看到ITEMNUM已經(jīng)從 INTEGER 改為 number 類型了。
1. 必須保證在一個事務(wù)內(nèi)處理:JDBC connection autocommit conn.setAutoCommit(false);
2. 插入記錄用empty_clob()函數(shù)帶入空CLOB字段:Insert into table with CLOB column as empty_clob();
3. 用select把空CLOB對象查出,注意必須帶for update子句來告知數(shù)據(jù)庫接下來要修改該記錄,否則SQL語句會返回錯誤告訴你沒有for update子句:Select clob column with “for update” option like “select clob_field from clob_table where rowid=1 for update”;
4. 將返回的CLOB字段對象由JDK的Clob轉(zhuǎn)換成Oracle 庫的CLOB對象:Turn the return from java.sql.Clob to Oracle.sql.CLOB:
Clob clob = (Clob)rs.getClob("clob_field");
oracle.sql.CLOB tmpclob = (oracle.sql.CLOB)clob;
5. 用字符串填充該CLOB對象:
BufferedWriter bw = new BufferedWriter(tmpclob.getCharacterOutputStream());
bw.write(clobClValueArray.get(i).toString());
bw.flush();
bw.close();
6. 用結(jié)構(gòu)化語句對象PreparedStatement實(shí)現(xiàn)DML操作:
PreparedStatement pstmt1 = conn.prepareStatement(“update clob_table set clob_field=? Where rowid=1”);
pstmt1.setClob(1, tmpclob);
pstmt1.execute();
7. 把事務(wù)提交實(shí)現(xiàn)CLOB字段操作。Commit the update: conn.commit();
8.讀取CLOB內(nèi)容也很簡單:
PreparedStatement pstmt = conn.prepareStatement("select clob_field from clob_table where rowid=1");
ResultSet rs = pstmt.executeQuery();
Clob clob = (Clob)rs.getClob("clob_field");
String str;
if(null != clob){
str = clob.getSubString((long)1, clob.length());
}
--以下是我根據(jù)你的描述,做的測試,希望對你有幫助:\x0d\x0a\x0d\x0a-- 新建一張表kongxianji:\x0d\x0aCREATE TABLE kongxianji(a VARCHAR2(200));\x0d\x0a\x0d\x0a-- 插入數(shù)據(jù),然后提交:\x0d\x0aINSERT INTO kongxianji (a) VALUES ('12345(6)789');\x0d\x0aINSERT INTO kongxianji (a) VALUES ('12345(67)89');\x0d\x0aINSERT INTO kongxianji (a) VALUES ('12345(678)9');\x0d\x0aCOMMIT;\x0d\x0aSELECT * FROM kongxianji;\x0d\x0a\x0d\x0a-- 把a(bǔ)中的括號去掉,然后提交,到這一步可以查看表中數(shù)據(jù)的變化情況:\x0d\x0aUPDATE kongxianji SET a = replace(a,substr(a,instr(a,'('),(instr(a,')')-instr(a,'(')+1)),'');\x0d\x0aCOMMIT;\x0d\x0a\x0d\x0aSELECT * FROM kongxianji;
Oracle
CHAR 定長字符串,最長2000字節(jié)
NCHAR 定長字符串,存儲的數(shù)據(jù)為 NLS字符
VARCHAR2 變長字符串,最長4000字節(jié)
NVARCHAR2 變長字符串,存儲的數(shù)據(jù)為 NLS字符
LONG 最大存儲2G字符數(shù)據(jù) 不推薦使用(改用CLOB)
CLOB Oracle 9i 及以前,最大4G字符數(shù)據(jù)
Oracle10g 最大4G*數(shù)據(jù)庫塊大小的字符數(shù)據(jù)
NCLOB 基本同CLOB,就是存儲的數(shù)據(jù)為NLS