各位请赐教:
在我的jsp页面执行sql语句时,只用一张表查询就正常,两张表关联后就不正常缺少末尾的分号,加上后就报错ORA-00911: 无效字符,不知道怎么回事,请各位赐教!!!小弟在线等待。

解决方案 »

  1.   

    有很多原因,不知道你是怎么写的。这是从网上搜的一个。网上这东西很多的,搜搜看。
     1* insert into dept values(92,'Jackey&&jjjdd','HZ');
    SQL> /
    输入 jjjdd 的值:  dd
    原值    1: insert into dept values(92,'Jackey&&jjjdd','HZ');
    新值    1: insert into dept values(92,'Jackeydd','HZ');
    insert into dept values(92,'Jackeydd','HZ');
                                               *
    ERROR 位于第 1 行:
    ORA-00911: invalid character结果发现到数据库中的数据和插入的数据不一致.主要表现是在插入的字符串的中如果包括了'&',
    则'&'后面的字符就会丢失.
    后来发现了造成这种情况的原因.因为'&'在sqlplusw中被定义为自定义变量标示符合,因此'&'
    符合后面的字符自然被解析为变量名字.因为没有输入变量的值,所以'&'后面的内容被认为是空的了.
      

  2.   

    把你的代码贴出来看一看
    可能是数据库的值与你的SQL语句不合
      

  3.   

    代码如下:
    String strsql="select a.zch,a.qymc,b.wjmc,b.pzjg,b.pzrq from qy_qydj_zs a,qy_spjg_zs b where a.id=b.id";strsql=strsql+";";ResultSet rs = stmt.executeQuery(strsql);
      

  4.   

    String strsql = " select a.zch,a.qymc,b.wjmc,b.pzjg,b.pzrq from qy_qydj_zs a,qy_spjg_zs b where a.id=b.id " + " ";ResultSet rs = stmt.executeQuery(strsql);这样试试看~
      

  5.   

    please use StringBuffer,
    and use append method.
      

  6.   

    是不是可以想象地到O/R Mapping的好处了
      

  7.   

    把你的SQL打印到页面上,分析之。
      

  8.   

    打印出来是sql语句是正常的但是报的错误还是org.apache.jasper.JasperException: ORA-00911: 无效字符
      

  9.   

    $, _, #, 这些字符在你的sql中了吧
    你说的sql语句是正常的,是指那个sql语句你拿到sqlplus中运行过了吗?
      

  10.   

    我的表名包含_ 字符, 我把sql语句拿到sqlplus中运行正常。
      

  11.   

    把你的SQL打出来看看,strsql=strsql+";";
    ";";你想干啥?
      

  12.   

    现在改成这样了,
    StringBuffer str = new StringBuffer();
    str.append("select a.zch,a.qymc,b.wjmc,b.pzjg,b.pzrq from +qy_qydj_zs a,qy_spjg_zs b where a.id=b.id");
    str.append(";");
    String SQL = str.toString();
    ResultSet rs=stmt.executeQuery(SQL);但是依然报错 org.apache.jasper.JasperException: ORA-00911: 无效字符
      

  13.   

    你把SQL语句打印出来不就能发现问题啊
      

  14.   

    打印出来是没有问题,并且在sqlplus中运行也没有问题呀
      

  15.   

    就是在你的SQL的字段名上加上",
    str.append('select ');
    str.append('"' + field_name1 + '"' + ',' );
    str.append('"' + field_name2 + '"' + ',' );
      

  16.   

    你的这个SQL的问题在于字段名中有$, _, #
    根据语法规则,需要在给字段名加上double quotation s
      

  17.   

    你的SQL语句是没有错的,可能是你的程序那里出错了,是不是还没有处理好。