setAsciiStream方法的问题?

时间:2013-11-21 22:58:42

标签: java teradata

我读了documentation。据我所知setAsciiStream只需要两个参数。

但是在official java snippet中可以找到以下内容:

pstmtFld.setAsciiStream(1, dataStream, -1);
 pstmtFld.executeUpdate();

我很困惑。 setAsciiStream究竟做了什么,尤其是第三个论点是什么?

2 个答案:

答案 0 :(得分:1)

您正在查看错误的javadoc: http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#setAsciiStream(int,%20java.io.InputStream,%20long)

setAsciiStream(int parameterIndex,                     InputStream x,                     长的)                     抛出SQLException 将指定参数设置为给定输入流,该输入流将具有指定的字节数。当一个非常大的ASCII值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能更实际。将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从ASCII到数据库char格式的任何必要转换。 注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。

还有一个长度为int的: http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#setAsciiStream(int,%20java.io.InputStream,%20int)

答案 1 :(得分:1)

它使用的方法是:

setAsciiStream(int parameterIndex, InputStream x, int length)

哪个参数需要length。机会是,-1表示任何金额。