3
我正在编写一个方法,通过Web服务接收逗号分隔的文本文件作为InputStream。我使用以下SQL脚本创建了我的表格:如何使用JDBC将InputStream插入到CLOB中?
CREATE SEQUENCE FILE_NUMBER_SEQ
INCREMENT BY 1
START WITH 1
MINVALUE 1
NOMAXVALUE;
CREATE TABLE FILES
(
ID NUMBER NOT NULL ,
FILE CLOB NOT NULL
);
在我的单元测试中,我使用以下代码来生成CSV。 B/C的机器管理员权限的测试可以在运行,我不能创建一个文件:
String simulatedCSVFile = new String("col1,col2\\ndata1,data2");
InputStream stream = new ByteArrayInputStream(
simulatedCSVFile.getBytes("UTF-8"));
我的方法目前看起来是这样的:
public void uploadCSVFile(InputStream stream) {
try {
Connection conn = null;
PreparedStatement preparedStmt = null;
conn = db.getDataSource().getConnection();
conn.setAutoCommit(false);
String sql = "INSERT INTO FILES(ID,FILE) VALUES(FILE_NUMBER_SEQ.NEXTVAL,?)";
preparedStmt = conn.prepareStatement(sql);
preparedStmt.setAsciiStream(1, stream);
int count = preparedStmt.executeUpdate();
}
}
当我执行的方法来测试它当setAsciiStream被调用时,我得到一个读取“消息有效负载的类型为:jetty.HttpParser”的异常。
任何想法如何转换流,以便它可以添加到CLOB的SQL?
我从来没有听说过通过Web服务发送InputStreams。你为什么不发送字节数组呢? – Lukasz 2011-01-08 23:29:21