使用原生的jdbc 查询数据库的数据,在pl/sql的窗口上查询时,能查到数据,但把sql语句粘贴到代码就执行就报错了
SELECT nvl(gspt.FOCA_DATE, '') FOCA_DATE,
nvl(gspt.FOCA_TIME, '') FOCA_TIME,
nvl(info.FARM_NUMB, '') FARM_NUMB,
nvl(gspt.GROUP_ID, '') GROUP_ID,
nvl(round(gspt.THEORY_NUM, 4), '') THEORY_NUM,
nvl(round(gspt.MODE_NUM, 4), '') MODE_NUM
FROM GF_SPPS_PROD_THEORY gspt
INNER JOIN SPPS_PTC_FARM_INFO info
ON info.FARM_ID = gspt.FARM_ID
WHERE gspt.FOCA_DATE = '2016-12-30'
ORDER BY gspt.FOCA_TIME ASC;
// sql语句
StringBuilder sql = new StringBuilder();
sql.append(" SELECT ")
.append(" nvl(gspt.FOCA_DATE,'') FOCA_DATE, ")
.append(" nvl(gspt.FOCA_TIME,'') FOCA_TIME, ")
.append(" nvl(info.FARM_NUMB,'') FARM_NUMB, ")
.append(" nvl(gspt.GROUP_ID,'') GROUP_ID, ")
.append(" nvl(round(gspt.THEORY_NUM,4),'') THEORY_NUM, ")
.append(" nvl(round(gspt.MODE_NUM,4),'') MODE_NUM ")
.append(" FROM ")
.append(" GF_SPPS_PROD_THEORY gspt ")
.append(" INNER JOIN SPPS_PTC_FARM_INFO info ON info.FARM_ID = gspt.FARM_ID ")
.append(" WHERE gspt.FOCA_DATE = '"+time+"' ")
.append(" ORDER BY gspt.FOCA_TIME ASC ;");
运行时报错 : ora-00911: 无效字符
后来,查找原因,就是在java代码末尾加了 ; 号,去掉 ; 号,程序就正常运行了
OK