就是b2.bclassname="+"'"+dl+"'";的问题

解决方案 »

  1.   

    String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";
    可以换成
    String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='"+dl+"'";然后你用System.out.println(src)把它打印出来,再把它Copy到sql plus中去执行,看看有没有错误
      

  2.   

    应该是列名写错的问题,你的tblclass中怎么又是id又有bid?
      

  3.   

    看看字段是否有错,然后用System.out.println()打印出SQL语句,复制到DB客户端运行。
    如:PL/SQL Developer 、SQLServer的控制台。
      

  4.   

    如此问题!让人怀疑不是一个程序员应该问的!
    不好意思,话虽激烈。但你要反省!
    good luck!
      

  5.   

    各位大侠,我按照你们的说法改了,还是报错:
    用out.print在后台输出这条sql:
    Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='ss'
    java.sql.SQLException: 无效的列名但是把这条sql拷到sql plus执行就能得到结果:
    SQL> Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='s
    s';        ID
    ----------
    CLASSNAME
    --------------------------------------------------------------------------------
             4
    ss1         5
    ss2
      

  6.   

    我也碰见过这种问题,我用的是oracle。String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";SQL Plus执行这条语句没有问题。后来我去掉那后面的分号";",执行成功了,,楼主不妨试试
      

  7.   

    Have a try!
    Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b2.id = b1.bid and b2.bclassname='ss';
      

  8.   

    sdlichuanxin(传欣)
    谢谢你的教诲。
    也许你很聪明,看不起这些问题。
    象我这样的刚入行的程序员有很多,在某些问题上会走弯路,找不到办法,因为没有什么经验,所以才会问如此可笑的问题。
    这个问题我问了几个搞过几年java的程序员和一个oracle牛人,还是没有解决,如果你知道是怎么回事的话请你告诉我,如果不知道也不要看不起人。
      

  9.   

    没有这么诡异吧!
    再仔细看看,还是觉得CoolAbu(阿卜-Never Stop(★★★★))的方法应该万无一失了
    不是jdbc不对吧!
      

  10.   

    fu4(future) 
    你说的去掉哪个分号?
    这句结尾的分号去掉,在jb里会报错的
      

  11.   

    CoolAbu(阿卜-Never Stop(★★★★)) 的方法我试了,还是不成,就算是把那个变量dl换成一个数据库中有的特定的值,仍然是不成
      

  12.   

    我的代码是这样写的。
    一部分代码。。已成功实现。
     //////////装载驱动程序///////
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //////创建连接////////
      Connection con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@hjdb:1521:dims","dimsdba","610");
      Statement stmt = con.createStatement();
     ResultSet rmtrlid = stmt.executeQuery("select mtrlid from dimsdba.mtrlbasicinfo"); while(rmtrlid.next()){
     if(!(mtrlid.equals(rmtrlid.getString("mtrlid"))))
       mflag=false;
      else{
        mflag=true;break;
        }
        }if(!mflag){
          session.setAttribute("rmtrlid","你输入的物料编码号"+mtrlid+"在数据库的物料基本信息表中不存在!");
          String url = "/crksq/error.jsp";
           url = response.encodeURL(url);
           RequestDispatcher dispatcher = request.getRequestDispatcher(url);
           dispatcher.forward(request, response);
          }    else{
    //////调用插入函数/////////
      Enterprise1 newsession =ehome.create();
         newsession.insertotherappout(appoutid, deptid, appdate, plannerid, usechief, fetcher, tabmaker, mtrlid, unit, reqamt, pprice, psum, proj, prodname, re);
    你看看把。。
      

  13.   

    ResultSet rmtrlid = stmt.executeQuery("select mtrlid from dimsdba.mtrlbasicinfo");我说的是这个select语句后面不要分号
      

  14.   

    String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where " +"b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";哈哈
      

  15.   

    我是用Jbuilder9+oracle9i+Weblogic8.1..
      

  16.   

    都试过了,rosen(考试机器) 的方法也是过了,结果还是一样
      

  17.   

    如果按照上面的各位的方法都试过之后,问题依旧。那么就说明你的oracle驱动上有问题了。你来一个直接的单表的简单查询试一下,如果没有问题说明你的oracle也没有问题的。
    刚才看了一下你的sql语句,发现你是对一个表格的连接查询,想想你的实际情况,然后换一种思路试一下。不用影响项目的进度!
      

  18.   

    在页面上调用时后台总报错:
       java.sql.SQLException :无效的列名
    ---------------------------------------------------
    这个错误显示已经连接成功我估计是这两句语句在执行时有问题;
    String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";
          ResultSet rs = stmt.executeQuery(src);你试这条语句肯定没错。
    ResultSet rs = stmt.executeQuery("select id from tblclass");String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";      这个好象有错;应该这样写把 。String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='"+dl+"'";去掉末尾最左边的"+"。。不妨试试
      

  19.   

    ResultSet rs = stmt.executeQuery("select id from tblclass");
    执行这句也是一样。看来不是写法的问题。真是奇怪了
      

  20.   

    我看你的开发工具和我的差不多。
    你先按这顺序写试试:(因为我的运行没问题)Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@主机名:1521:服务名","用户名","密码");Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("select id from tblclass");
    .....
    如果这样不行。那就真的不幸了。
      

  21.   

    SQL Plus和java code 用的不是一个DB吧?
      

  22.   

    package con_orc;
    import java.sql.*;public class connect_orc
    {
        private Connection connect_oracle()
        {
            Connection conn=null;
            try
            {
                DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ziliaoku","system","manager");
            }
            catch(Exception e)
            {
                System.out.println(e.toString());
            }
            return(conn);
        }    public Connection getconnect()
        {
            return(this.connect_oracle());
        }
    }这是我连接数据库的bean,我在别的页面上也写过类似的处理都没问题的
      

  23.   

    请问各位:oracle的驱动怎样配呀
      

  24.   

    我把那条sql改成了单表查询就可以了。
    是不是jsp不支持这样的多表间查询呢
      

  25.   

    to  ufotree(清凉薄荷)String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where " +"b1.bid=b2.id and b2.bclassname="+"\'"+dl+"\'";既然报错信息是 列找不到 感觉应该是 列名没写对 不过你既然已经检查了,那就试试这个吧~
      

  26.   

    String src = "Select b1.id,b1.classname from tblclass b1 left outer join tblbclass b2 on where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";其实我是很菜的,不过还是发表一下吧,希望有用
      

  27.   

    String src = "Select b1.id,b1.classname from tblclass b1 left outer join tblbclass b2 on b1.bid=b2.id where b2.bclassname="+"'"+dl+"'";
      

  28.   

    都說是無效列名了麼, 那就是你的子段名的問題了阿,
    1.sql 問題
    2.rs.getString("問題")  最好全大寫
      

  29.   

    hoho 
    mm 的問題這麼多人回答阿!呵呵
      

  30.   

    试试这样!!
    String src = "Select b1.id,b1.classname from tblclass b1 left outer join tblbclass b2 on b1.bid=b2.id where b2.bclassname=\'"+dl+"\'";
      

  31.   

    应该贴出数据结构的,不过我认为错在where b1.bid=b2.id  
    b1是不是有bid这个字段?
      

  32.   

    b1(tblclass)肯定有bid这个字段,我把这条语句换成单表查询就没有报错
      

  33.   

    我觉得可能是 bl.id 这个可能有点问题,因为 id 是数据库保留的名字,会不会是因为使用了保留字段的原因,用b1.[id]不知道是否可以。我没有装Oracle,没有试过。行不行,不敢保证。
      

  34.   

    换一个 jdbc驱动看看,我觉得是这个问题
      

  35.   

    我在delphi中动态生成SQL语句时,STRING型的参量两边的' 都用#39替代,不知道这样行不行?
      

  36.   

    给我联系吧。
    我给你解决
    MSN:[email protected]
    希望探讨!