有很多原因,不知道你是怎么写的。这是从网上搜的一个。网上这东西很多的,搜搜看。 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中被定义为自定义变量标示符合,因此'&' 符合后面的字符自然被解析为变量名字.因为没有输入变量的值,所以'&'后面的内容被认为是空的了.
把你的代码贴出来看一看 可能是数据库的值与你的SQL语句不合
代码如下: 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);
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);这样试试看~
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中被定义为自定义变量标示符合,因此'&'
符合后面的字符自然被解析为变量名字.因为没有输入变量的值,所以'&'后面的内容被认为是空的了.
可能是数据库的值与你的SQL语句不合
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);
and use append method.
你说的sql语句是正常的,是指那个sql语句你拿到sqlplus中运行过了吗?
";";你想干啥?
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: 无效字符
str.append('select ');
str.append('"' + field_name1 + '"' + ',' );
str.append('"' + field_name2 + '"' + ',' );
根据语法规则,需要在给字段名加上double quotation s