如何使用Groovy将clob转换为字符串?
发布时间:2020-12-14 16:26:52 所属栏目:大数据 来源:网络整理
导读:我想从数据类型为clob的表中选择数据. 所以resut就像oracle.sql.CLOB@12fe54d 我想将数据显示为表中显示的字符串. 在groovy我试过这个: rowTest = sql.firstRow("select name from table where id=10")clobTest = (oracle.sql.CLOB)rowTest[0]byte_stream_t
我想从数据类型为clob的表中选择数据.
所以resut就像oracle.sql.CLOB@12fe54d 我想将数据显示为表中显示的字符串. 在groovy我试过这个: rowTest = sql.firstRow("select name from table where id=10") clobTest = (oracle.sql.CLOB)rowTest[0] byte_stream_test = clobTest.getBinaryStream() if( byte_stream_test == null ) { println "Test: Received null stream!" } byte[] byte_array_test = new byte[10] int bytes_read_test = byte_stream_test.read(byte_array_test) print "Read $bytes_read_test bytes from the clob!" sql.connection.close() 我有以下错误: ---- A working test of writing and then reading a blob into an Oracle DB --- Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: oracle.sql.CLOB.getBinaryStream() is applicable for argument types: () values: [] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at Test2.run(Test2.groovy:10) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:901) at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:884) at org.codehaus.groovy.runtime.InvokerHelper.runScript(InvokerHelper.java:406) at org.codehaus.groovy.runtime.InvokerHelper$runScript.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at Test2.main(Test2.groovy) 你能帮我解决这个问题吗,谢谢 解决方法
请尝试以下代码:
rowTest = sql.firstRow("select name from table where id=10") clobTest = (oracle.sql.CLOB)rowTest[0] bodyText = clobTest?.asciiStream.text println bodyText (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |