Oracle求助

overcast 2004-05-06 11:05:09
连接oracle,显示test表的结构,为什么会提示出错
java.sql.SQLException: ORA-00900: 无效 SQL 语句
但是这个desc test在sqlplus中运行时对的,而且同样的做法如果联到mysql上是对的,连到oracle就不行:(请大虾帮助!!。

try{
DriverManager.registerDriver((Driver) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance());
conn = DriverManager.getConnection(connectionString, username,password);
PreparedStatement stmt = conn.prepareStatement("desc test");
ResultSet rset = stmt.executeQuery();
while(rset.next()){

}
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
overcast 2004-05-10
  • 打赏
  • 举报
回复
但是同样的程序如果连接mysql的话却没有问题
郁闷
wuyaxlz 2004-05-08
  • 打赏
  • 举报
回复
帮你up一下
yugona 2004-05-08
  • 打赏
  • 举报
回复
错了。
我想desc xxxx 只能用execute(),他并不是一个查询语句。
而execute()的返回值是boolean类型。
boolean success=stmt.execute();

如果你想查询关于表xxxx的信息用恐怕要查询oracle的数据字典(data dictionary)表来获取相关的表信息。
yugona 2004-05-08
  • 打赏
  • 举报
回复
ResultSet rset = stmt.executeQuery();
改成
ResultSet rset = stmt.execute();试试看
overcast 2004-05-08
  • 打赏
  • 举报
回复
这样做没有任何区别
panpan221 2004-05-06
  • 打赏
  • 举报
回复
新手学习
kkcncry 2004-05-06
  • 打赏
  • 举报
回复

try{
DriverManager.registerDriver((Driver) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance());
conn = DriverManager.getConnection(connectionString, username,password);
PreparedStatement stmt = conn.prepareStatement("desc ?");
stmt.setString(1,"test");
ResultSet rset = stmt.executeQuery();
while(rset.next()){

}应该也可以!

kkcncry 2004-05-06
  • 打赏
  • 举报
回复
Statement stmt = conn.createStatement("desc test");
这样写PreparedStatement stmt = conn.prepareStatement("desc test");如果安你那么写的话你的SQL里面必须有参数
执行的时候必须设置参数
stmt.setString(1,..);
stmt.setString(2,..);
....
然后才可以执行~

62,615

社区成员

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

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