江湖告急:SQL语句问题!

yf520gn 2008-10-24 11:59:51
我现在有一个字符串,String sql=“SQL语句A;SQL语句B";
rs = conn.createStatement().executeQuery(sql);
报错为无效字符;原因是字符串SQL传给数据库的语句是A;B连在一起的,
而数据库非要A;
B;
这样的结构才能执行(其实就是A,B之间要加个换行符,告诉数据库我换行了),请问我该怎么做?
...全文
131 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jarvis-Li 2008-10-27
  • 打赏
  • 举报
回复
可以执行吧你用的是什么数据库
java__king 2008-10-25
  • 打赏
  • 举报
回复
用存储过程吧
liangtingsenkk 2008-10-25
  • 打赏
  • 举报
回复
你最好写一个存储过程,那样就可以了
一般比较复杂的查询,都用存储过程
C0150 2008-10-24
  • 打赏
  • 举报
回复
楼主可以在ab之间插入一个/r/n换行符试试看
不过这个方法只是告诉你换行,不保证这样写就可以放到SQL里面查询了。
FAT0708 2008-10-24
  • 打赏
  • 举报
回复
没搞懂楼主要干吗
yinweihong 2008-10-24
  • 打赏
  • 举报
回复
我也没看明白楼主是啥意思,想问啥
kokobox 2008-10-24
  • 打赏
  • 举报
回复
你所说的告诉数据库你换行了是什么意思?

lihan6415151528 2008-10-24
  • 打赏
  • 举报
回复
紫竹是数据库高手~留给他来结局
suhaibolove 2008-10-24
  • 打赏
  • 举报
回复
jdbc查询数据库没有提供这种查询
suhaibolove 2008-10-24
  • 打赏
  • 举报
回复
好像不支持这种查询,你执行两次查询不行吗?
String sqlA=“SQL语句A";
String sqlB=“SQL语句B";
rsA = conn.createStatement().executeQuery(sqlA);
rsB = conn.createStatement().executeQuery(sqlB);

kokobox 2008-10-24
  • 打赏
  • 举报
回复
告诉数据库换行有什么用呢?

数据库执行sql是根据分号来判断一条命令是否结束

如果你要同事执行两条sql,可以执行一个存储过程

或者
Statement stm =  conn.createStatement();
stm .addBatch(A sql语句);
stm .addBatch(B sql语句);
stm .executeBatch();

一根黑毛 2008-10-24
  • 打赏
  • 举报
回复
分开两次执行吧

String sqlA=“SQL语句A";
String sqlB=“SQL语句B";
rsA = conn.createStatement().executeQuery(sqlA);
rsB = conn.createStatement().executeQuery(sqlB);

这样不是挺好吗
yf520gn 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 C0150 的回复:]
楼主可以在ab之间插入一个/r/n换行符试试看
不过这个方法只是告诉你换行,不保证这样写就可以放到SQL里面查询了。
[/Quote]这个方法我试验过了,还是不行~~
yf520gn 2008-10-24
  • 打赏
  • 举报
回复
我在解释一下,是这个意思:在ORACLE数据库中SQL语句A;SQL语句B这样连成一行是无法执行的;
只能:SQL语句A;
SQL语句B
这样才能执行;
我现在要把一个由A,B组成的字符串传递给数据库,如何告诉数据库A,B之间我换行了,就是这个意思~

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧