需求:表中某个字段的存储sql口径,但是数据导入到新的库后,schema没有改过来,需要批量修改。
DBMS.GETLENGTH可以获取CLOB类型的长度,DBMS.SUBSTR(字段名,偏移量,起点)可以将CLOB转为字符串,但是当截取的长度超过一定时就会包缓冲区不足.应该是超过了VARCHAR2的最大容量。
最后通过DBMS_LOB没有replace相关的函数可以处理,现通过java代码来解决。
package com.zl;
import oracle.sql.CLOB;
import java.io.BufferedWriter;
import java.io.IOException;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class oracle_demo1 {
public void updateClob() throws SQLException {
Connection conn = null;
try{
String url = "jdbc:oracle:thin:@IP:1521/servicename";
String username = "username";
String password = "password";
Class.forName("oracle.jdbc.driver.OracleDriver");
Map<String,String> map =