Gepir
8 years agoOccasional Contributor
groovy blob read
Hi,
I;m trying to read blob from DB, I've created this script (below)
def blob = sql.firstRow("SELECT CASE.APPLICATIONS.DATAPACKAGE as blob FROM CASE.APPLICATIONS WHERE APPLICATIONS.STATUS = '0' And APPLICATIONS.APPLICATIONNAME Is Not Null ORDER BY APPLICATIONS.CREATED DESC").blob String datapackage = new String(blob.getBytes(1,(int)blob.length())) log.info datapackage byte[] readBits = datapackage.getBytes(1L, datapackage.length()as int) log.info 'bits: ' + new String(readBits) sql.close()
but I'm still getting this error, line 8 is:
byte[] readBits
groovy.lang.MissingMethodException: No signature of method: java.lang.String.getBytes() is applicable for argument types: (java.lang.Long, java.lang.Integer) values: [1, 184] Possible solutions: getBytes(), getBytes(java.lang.String), getBytes(java.nio.charset.Charset), getBytes(int, int, [B, int), getClass(), getChars() error at line: 8
Thanks for help
So I've found the solution...
import groovy.sql.Sql import java.sql.* sql = Sql.newInstance("jdbc:oracle:thin:@::", "", "") //selct blob java.sql.Blob blob = sql.firstRow("SELECT CASE.APPLICATIONS.DATAPACKAGE as blob FROM CASE.APPLICATIONS WHERE APPLICATIONS.STATUS = '0' And APPLICATIONS.APPLICATIONNAME Is Not Null ORDER BY APPLICATIONS.CREATED DESC").blob byte[] bdata = blob.getBytes(1, (int) blob.length()); String text = new String(bdata); log.info text;
next step is decrypt blob...