首页javajdbc_dataJava JDBC - 如何在Oracle中通过具有CLOB绑定的JDBC执行sql语句

Java JDBC - 如何在Oracle中通过具有CLOB绑定的JDBC执行sql语句

我们想知道如何在Oracle中通过具有CLOB绑定的JDBC执行sql语句。
import java.io.ByteArrayInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Main {
  public static final int SIZE = 8192;
  public static void main(String[] args) throws Exception {
    byte[] data = new byte[SIZE];
    for (int i = 0; i < SIZE; ++i) {
      data[i] = (byte) (64 + (i % 32));
    }
    ByteArrayInputStream stream = new ByteArrayInputStream(data);
    // DriverManager.registerDriver(new OracleDriver());
    Connection c = DriverManager.getConnection(
        "jdbc:oracle:thin:@some_database", "user", "password");

    String sql = "DECLARE\n" + //
        "  l_line    CLOB;\n" + //
        "BEGIN\n" + //
        "  l_line := ?;\n" + //
        "  UPDATE table SET log = log || l_line || CHR(10) WHERE id = ?;\n" + //
        "END;\n"; //

    PreparedStatement stmt = c.prepareStatement(sql);
    stmt.setAsciiStream(1, stream, SIZE);
    stmt.setInt(2, 1);
    stmt.execute();
    stmt.close();
    c.commit();
    c.close();
  }
}