可用spool的方式將查詢內(nèi)容放入文本。
創(chuàng)新互聯(lián)專注于坊子企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。坊子網(wǎng)站建設(shè)公司,為坊子等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
方法如下:
1、在windows下如c盤data目錄下創(chuàng)建腳本,名字為:exec.sql,內(nèi)容為:
set?trimspool?on
set?linesize?120
set?pagesize?2000
set?newpage?1
set?heading?off
set?term?off
spool?路徑+文件名
select?col1||','||col2||','||col3||','||col4||'..'?from?tablename;
spool?off
2、命令提示符下先進(jìn)到c盤data目錄下,然后執(zhí)行如下語(yǔ)句:
sqlplus?用戶名/密碼@數(shù)據(jù)庫(kù)實(shí)例名
@exec.sql
3、如查詢語(yǔ)句為:
select?empno||','||deptno||','||sal||','||comm?from?emp;
則最后生成的文件內(nèi)容如下:
BLOB :大數(shù)據(jù)類型,最大存儲(chǔ)65K,不可以被導(dǎo)出,只能在oracle數(shù)據(jù)庫(kù)中進(jìn)行查看。 擴(kuò)展: BLOB (binary large object),二進(jìn)制大對(duì)象,是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器。在計(jì)算機(jī)中,BLOB常常是數(shù)據(jù)庫(kù)中用來(lái)存儲(chǔ)二進(jìn)制文件的字段類型。
在oracle中存儲(chǔ)大量的文字應(yīng)該是用CLOB字段來(lái)存儲(chǔ)。這種類型在用java將數(shù)據(jù)存進(jìn)數(shù)據(jù)庫(kù)中時(shí)比較簡(jiǎn)單,直接將String類型的文本寫入就可以了。但是在從數(shù)據(jù)庫(kù)中讀取CLOB類型的數(shù)據(jù)到j(luò)ava中時(shí)比較麻煩,因?yàn)槟闶悄貌坏綌?shù)據(jù)的,只能拿到這個(gè)字段的一個(gè)隱式指針,然后還要通過(guò)輸入流來(lái)拿到。
圖片一般存圖片的url地址,文本用varchar2(),最多varchar2(4000). 再多可以永clob
sqlplus下
sql?spool?c:\001.txt
sqlselect?*?from?表名;???--這句就是你查詢的語(yǔ)句,你自己寫吧
sql?spool?off
然后你去你C盤下找到001.txt文件就好了
輸出格式上有問(wèn)題的話,就百度一下sqlplus的參數(shù)
clob類型,但對(duì)于這個(gè)類型處理起來(lái)還是比較麻煩的,varchar2長(zhǎng)度為4000bytes,如果varchar2能滿足樓主的需求,建議使用varchar2,下面提供了在Java 中讀取clob類型的方式,我主要講的是JDBC的操作,Hibernate目前不講,操作這個(gè)Clob列主要分為插入和獲取倆個(gè)操作:
1、Java程序插入Clob值到Oracle數(shù)據(jù)庫(kù)表中:
String clob= "這里主要是要插入到表中的值";//前面具體數(shù)據(jù)庫(kù)連接代碼這里省略,直接進(jìn)正題String sql = "insert into clob_test(id,str) values (1,?)";PreparedStatement stmt = conn.prepareStatement(sql);// 將clob轉(zhuǎn)成流形式
Reader clobReader = new StringReader(clob);stmt.setCharacterStream(1,clobReader,clob.length());// 替換sql語(yǔ)句中的?
stmt.executeUpdate();
2、讀取Clob列的值
String sql = "select str from clob_test where id=1";PreparedStatement stmt = conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();
//最后獲得的結(jié)果
String resultClob;
if(rs.next()){
//導(dǎo)入oracle.sql.CLOB包,或者直接引用這個(gè)包oracle.sql.CLOB clob = rs.getClob("str");Reader rd= clob.getCharacterStream();// 得到流BufferedReader br = new BufferedReader(rd);String s = br.readLine();
StringBuffer sb= new StringBuffer();
while (s != null) {
// 循環(huán)賦值
sb.append(s);
s = br.readLine();
}
clobResult = sb.toString();
}