ich habe eine Zeichenkette mit vielen Wert, ich will den ganzen Wert erhalten und ihn in neue Zeichenkettenvariable setzen. nachdem es i String setzen es würde getan []java, wie man Zeichenkette in Zeichenkette [] umwandelt und Spezifische Zeichenkettenvariabel eingibt
im Import lib:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionContext;
import oracle.jdbc.OracleCallableStatement;
import oracle.sql.ArrayDescriptor;
import oracle.sql.ARRAY;
import oracle.jdbc.OracleTypes;
import java.sql.*;
dies mein Code:
private List<monitoringPpobModel> lisPpob= new ArrayList<monitoringPpobModel>();
con = dbEngine.getConnection();
OracleCallableStatement css = null;
for(int i=0;i<lisPpob.size(); i++)
{
System.out.println("param 1 = "+lisPpob.get(i).getLBRAP2T());
System.out.println("param 2 = "+lisPpob.get(i).getRPAP2T());
ArrayDescriptor oracleVarchar2Collection = ArrayDescriptor.createDescriptor("OPHARTDE.ARAY",con);
List<String> lis= Arrays.asList(lisPpob.get(i).getLBRAP2T());
List<String> lis2= Arrays.asList(lisPpob.get(i).getRPAP2T());
String ket1 = lis.stream().map(Object::toString).collect(Collectors.joining(","));
String ket2 = lis2.stream().map(Object::toString).collect(Collectors.joining(","));
//manual declare - this work
String aa = "1";
String bb = "3";
String cc = "5";
String dd = "7";
String ee = "8";
String[] lbr = {aa,bb,cc,dd,ee};
// String[] lbr = {ket1};
//auto declare - this not work
String[] rp = {ket2};
ARRAY ora_lbr = new ARRAY (oracleVarchar2Collection, con,lbr);
ARRAY ora_rp = new ARRAY (oracleVarchar2Collection, con,rp);
System.out.println("value 1= "+ lbr.length +" = "+ lbr[i]);
System.out.println("value 2= "+ rp.length +" = "+ rp[i]);
css = (OracleCallableStatement) con.prepareCall("{call OPHARTDE.PPOBUPDATE2(?,?)}");
css.setArray(1, ora_lbr);
css.setArray(2, ora_rp);
css.execute();
}
das Ergebnis von println ist:
param 1 = 75764674653, 5434, 354, 434, 5435
param 2 = 53, 535, 25, 53, 434
value 1= 5 = 1
value 2= 1 = 53, 535, 25, 53, 434
Was ich will ist der Wert von:
String[] rp = {ket2};
ist wie Wert in
String[] lbr = {aa,bb,cc,dd,ee};
Vielen Dank für Hilfe. Es war so schwer für mich. jede Hilfe bitte
Hilfe bitte. danke –
Ich habe keine Ahnung, was deine Fragen sind. Sei genau. – UDKOX
erhalten Sie jeden Wert von Zeichenfolge und in Zeichenfolge [] –