Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java在Oracle中插入_Java_Sql_Oracle_Jdbc_Prepared Statement - Fatal编程技术网

如何使用java在Oracle中插入

如何使用java在Oracle中插入,java,sql,oracle,jdbc,prepared-statement,Java,Sql,Oracle,Jdbc,Prepared Statement,我在Oracle数据库中有CLOB列,我想插入字符串 如果我使用setCharacterStream,它是可以工作的,但是如何按setBytes插入字符串,我遇到了一个异常。 请帮帮我 String s = "Hello How are you Data for CLOB column"; ps.setCharacterStream(1, new StringReader(s), s.length()); ps.setByte(1,Byte.parseByte(s)); 异常跟踪: java.

我在Oracle数据库中有CLOB列,我想插入字符串

如果我使用setCharacterStream,它是可以工作的,但是如何按setBytes插入字符串,我遇到了一个异常。 请帮帮我

String s = "Hello How are you Data for CLOB column";
ps.setCharacterStream(1, new StringReader(s), s.length());
ps.setByte(1,Byte.parseByte(s));
异常跟踪:

java.lang.NumberFormatException: For input string: "Hello How are you Data for CLOB column"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:447)
    at java.lang.Byte.parseByte(Byte.java:151)
    at java.lang.Byte.parseByte(Byte.java:108)
    at colb.test.InertClob.main(InertClob.java:24)
请参阅


将字符串参数解析为带符号的十进制字节。字符串中的字符必须全部为十进制数字,

以下是两个很好的示例(带有示例代码,用于选择和插入):

  • 轻松处理CLOB:

  • 向databaase添加大型对象类型
您应该:

  • 例如,通过调用s.getBytes()或任何其他函数,将字符串转换为字节数组
  • 调用setBytes方法,而不是setByte方法

  • 从数据库检索时,不要忘记如何获取字节,以便正确恢复字符串


  • 这里有两个很好的例子:,和。我认为您根本不需要“setByte()”。IMHO…@paulsm4谢谢你…这么好的链接我甚至没有想到这么好的pstmt.setString(1,str)?如果你能回答这个问题……我很高兴。很高兴它有帮助!设置字符串在这里是错误的。可能有效/可能无效,您应该将字节数组存储到Blob字段。您如何以及为什么说可能有效或可能无效请解释…我没有询问Blob。