象:strNum="00001,00005,00002,00004,00010……"这种字符串,怎么样才能把它分成
str[1]="00001"
str[2]="00005"
str[3]="00002"
str[4]="00004"
str[5]="00004"
str[6]="00010"
  .
  .
str[n]="00060"这样的字符串数组?
我的具体需求是样的,在表A中有一个字段是VARCHAR2型的,存储的信息就是strNum那样的字符串,这个字符串是表B中的“编号”字段的集合,我现在想做如下的一个操作:
SELECT A.COL1,B.COL1,A.COL2……FROM Table1 A,Table2 B WHERE B.COL2 IN A.strNum 但是查出来的是一个空的记录集。我知道应该把strNum分解成str数组那样的一个“编号”集合才能查出结果来,但是我不知道应该怎么分。请各位大侠指点一下。

解决方案 »

  1.   

    where instr(A.strNum,B.COL2) > 0或者写个方法,把字符串劈开后,循环~
      

  2.   

      在你的sql构建的时候在in后面加一个循环,
     String[] dlist = strNum.split(",");
     StringBuffer sql = new StringBuffer();
     sql.append(" SELECT A.COL1,B.COL1……FROM Table1 A,Table2 B WHERE B.COL2 in(  ");
            for (int i = 0; i < dlist.length; i++)
            {
                sql.append("dlist[i]");
                if (i < dlist.length - 1)
                {
                    sql.append(',');
                }
            }
            sql.append(")");
      

  3.   

    oralce
    SELECT A.COL1,B.COL1,A.COL2……FROM Table1 A,Table2 B WHERE instr(A.strNum,B.COL2) > 0;