oracle中表结构如下:
create table GRID_RESOURCE
(
ID VARCHAR2(50),
CNNAME VARCHAR2(50),
TYPE VARCHAR2(50),
PARENTID VARCHAR2(50),
VIEWWIDTH VARCHAR2(50),
REQUESTURL VARCHAR2(256),
COUNTSQL CLOB,
ISDISPLAY VARCHAR2(50),
TREEINDEX VARCHAR2(256),
TABLES VARCHAR2(256),
NOTE3 VARCHAR2(256)
)
COUNTSQL字段为CLOB类型,索引为6
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class T { public static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure()
.buildSessionFactory();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
} /**
* @param args
*/
public static void main(String[] args) {
new T().getList();
} public void getList() {
String querySQL = "select * from GRID_RESOURCE";
String countSQL = "";
List<Object[]> list = new ArrayList<Object[]>();
// List o_list = new ArrayList();
try {
list = sessionFactory.openSession().createSQLQuery(querySQL).list();
for (Object[] obj : list) {
Map<String, Object> map = new HashMap<String, Object>();
Clob sc = (Clob) obj[6];
countSQL = ClobToString(sc);
System.out.println(countSQL);
}
// 另一个遍历方法
/*
* for(Object obj:o_list){ Object oo[] = (Object[])obj;
* System.out.println(oo[6]); }
*/
} catch (Exception e) {
e.printStackTrace();
}
} // 将字Clob转成String类型
public String ClobToString(Clob sc) throws SQLException, IOException {
String reString = "";
Reader is = sc.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
reString = sb.toString();
return reString;
} }