为啥Oracle只能查询出一条记录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥Oracle只能查询出一条记录?相关的知识,希望对你有一定的参考价值。

package 测试包;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Oracle

/**
* @param args
*/

public static void main(String[] args)
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement statement =null;
Statement stmt = null;
ResultSet res=null;
try
Class.forName("oracle.jdbc.driver.OracleDriver");
catch (ClassNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();

String url="jdbc:oracle:thin:@127.0.0.1:1521:Oraclename";
//orcl为数据库的SID
String user="system";
String password="tiger";
try
conn= DriverManager.getConnection(url,user,password);
System.out.println("已经成功连接数据库!!!");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// statement = conn.prepareStatement("select * from newtable1");

res=stmt.executeQuery("select * from newtable1");
// res = statement.executeQuery();
while(res.next())


System.out.println(res.getString(1)+" "+res.getString(2)+res.getString(3));

conn.close();//关闭连接数据库

catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();


//statement.executeQuery("select * from newtable1");




连接成功,不过只能显示出一条数据记录:
已经成功连接数据库!!!
第一名 张三 一班

你数据库里有多少数据?
如果是多条数据..建议你创建一个entity实体类..然后循环将数据插入到一个 实体类类型的list中 返回一个list 如果你要在控制台看到 数据 就在 循环中输出就可以了.
新手..希望对你有帮助
参考技术A 原因:你的表只有一行。。。 参考技术B newtable1 里面有几行?

oracle 查询 将一条变多条

表里有这样一条记录

山东 0.8 全部 7
---------------------------------------------- 怎么变成下面

山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
---------------------------------------------------
下面7条记录都是根据第一条的那个7循环的。也就是说7那个字段不管整数是多少,下面就会有多少记录。
如果是8下面就会有八条记录。是9就会有9条记录。 我是做查询不是想做新增。就是想把本来是一条结果集的记录,查询一下变成多条。

参考技术A 多条变一条用聚合函数吧,也就是分组了,
也可以用分析函数。
如果是重复数据的话用 distinct 就可以了。追问

能不能给我一个示列看一下

参考技术B select '山东',0.8,'全部',7 from dual;
union all
select '山东',0.8,'全部',7 from dual;
union all
select '山东',0.8,'全部',7 from dual;
union all
select '山东',0.8,'全部',7 from dual;
union all
select '山东',0.8,'全部',7 from dual;
union all
select '山东',0.8,'全部',7 from dual;
union all
select '山东',0.8,'全部',7 from dual;
这样写试一下,看看是否好用。
参考技术C 用union all 呗
select * From table1
union all
select * From table1
union all
select * From table1
.......
不知道符合不符合你的要求追问

但是结果集想变成多少条记录是根据字段里面的值来确定的,值是多少条,结果集就多少条

追答

那么既然是循环,就得有判断,既然有判断就得写代码,单用sql应该是实现不了的

追问

能不能写成一个视图,我在前面弄也挺麻烦

追答

视图肯定不行啊,视图其实就是sql语句,也是死的

本回答被提问者和网友采纳
参考技术D 写程序吧,单条SQL应该做不出这个效果追问

能不能写个视图或者其他什么。可以做吗

第5个回答  2014-09-11 这是一个变态的需求,一条SQl语句做不到

以上是关于为啥Oracle只能查询出一条记录?的主要内容,如果未能解决你的问题,请参考以下文章

mysql只能取出一条记录为啥不显示

在oracle数据库表中没有添加rowid字段为啥会出现

sql数据库查询,只能查出第一条记录?

oracle 查询所有字段,某字段重复只显示一条

oracle中如何只查询一条复合条件的记录,即查到一条记录就返回

oracle中如何只查询一条复合条件的记录,即查到一条记录就返回