Skip to content

Commit 0cd9490

Browse files
authored
Merge pull request #1517 from lowcoder-org/fix/oracle_blob_serialize
#1173: Implemented json serialization of oracle BLOB column type
2 parents 42a8018 + 7eed7e2 commit 0cd9490

File tree

1 file changed

+9
-0
lines changed
  • server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/plugin/common/sql

1 file changed

+9
-0
lines changed

server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/plugin/common/sql/ResultSetParser.java

+9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package org.lowcoder.sdk.plugin.common.sql;
22

3+
import org.apache.commons.codec.binary.Base64;
34
import org.jetbrains.annotations.Nullable;
45

6+
import java.sql.Blob;
57
import java.sql.ResultSet;
68
import java.sql.ResultSetMetaData;
79
import java.sql.SQLException;
@@ -25,6 +27,7 @@ public class ResultSetParser {
2527
public static final String DATETIME_COLUMN_TYPE_NAME = "datetime";
2628
public static final String TIMESTAMP_COLUMN_TYPE_NAME = "timestamp";
2729
public static final String YEAR_COLUMN_TYPE_NAME = "year";
30+
public static final String BLOB_COLUMN_TYPE_NAME = "blob";
2831

2932
public static List<Map<String, Object>> parseRows(ResultSet resultSet) throws SQLException {
3033
ResultSetMetaData metaData = resultSet.getMetaData();
@@ -74,6 +77,12 @@ private static Object getValue(ResultSet resultSet, int i, String typeName) thro
7477
if (YEAR_COLUMN_TYPE_NAME.equalsIgnoreCase(typeName)) {
7578
return resultSet.getDate(i).toLocalDate().getYear();
7679
}
80+
if (BLOB_COLUMN_TYPE_NAME.equalsIgnoreCase(typeName)) {
81+
//Convert binary data into base64
82+
Blob blob = resultSet.getBlob(i);
83+
byte[] blobBytes = blob.getBytes(1, (int) blob.length());
84+
return Base64.encodeBase64String(blobBytes);
85+
}
7786
return resultSet.getObject(i);
7887
}
7988

0 commit comments

Comments
 (0)