Fügen Sie CLOB in die Oracle-Datenbank ein

Meine Frage ist: Wie kommst du um die herum?ORA-01704: string literal too long Fehler beim Einfügen (oder bei Abfragen) mitCLOBs?

Ich möchte eine Abfrage wie diese haben:

INSERT ALL
   INTO mytable VALUES ('clob1')
   INTO mytable VALUES ('clob2') --some of these clobs are more than 4000 characters...
   INTO mytable VALUES ('clob3')
SELECT * FROM dual;

Wenn ich es mit tatsächlichen Werten versuche, bekomme ichORA-01704: string literal too long zurück. Das ist ziemlich offensichtlich, aber wie füge ich Clobs ein (oder führe überhaupt eine Anweisung mit einem Clob aus)?

Ich habe versucht, das zu betrachtenFrage, aber ich glaube nicht, dass es das hat, wonach ich suche. Die Klumpen, die ich habe, sind in einemList<String> und ich durchlaufe sie, um die Erklärung abzugeben. Mein Code wie folgt:

private void insertQueries(String tempTableName) throws FileNotFoundException, DataException, SQLException, IOException {
String preQuery = "  into " + tempTableName + " values ('";
String postQuery = "')" + StringHelper.newline;
StringBuilder inserts = new StringBuilder("insert all" + StringHelper.newline);
List<String> readQueries = getDomoQueries();
for (String query : readQueries) {
  inserts.append(preQuery).append(query).append(postQuery);
}
inserts.append("select * from dual;");

DatabaseController.getInstance().executeQuery(databaseConnectionURL, inserts.toString());

}

public ResultSet executeQuery(String connection, String query) throws DataException, SQLException {
  Connection conn = ConnectionPool.getInstance().get(connection);
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(query);
  conn.commit();
  ConnectionPool.getInstance().release(conn);
  return rs;
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage