<%@ page import = "java.sql.*" %>
<%
    java.sql.Connection conn=null;//=oracle.jdbc.OracleDriver;
    String dbName="ydj:1521:ProjMngr";
    String userID="sa";
    String userPWD="12345";
    try
            {
                DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                conn=DriverManager.getConnection("jdbc:oracle:thin:@"+dbName,userID,userPWD);
            }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    try{
ResultSet res=null;
//res=conn.createStatement().executeQuery("select staffID from EMPLOYEES ORDER BY deptCaste DESC");用下面的方法执行查询就只能打印部分记录(res.next()停住了),这是为什么?
                PreparedStatement pst=null;
        String strExecSql="SELECT staffID FROM Employees WHERE deptID=? AND curStatus=2 ORDER BY deptCaste DESC";
pst = conn.prepareStatement(strExecSql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
pst.setString(1, "200403300000018");
res = pst.executeQuery();
        while(res.next())
        {       
            %>
              <%= res.getString(1)%>
            <%
        }
    }catch(Exception e)
    {
        e.printStackTrace();
    }
    System.out.println("haha,我连接城攻了");
    if(conn!=null)
    {
        try{
            conn.close();
        }catch(Exception e)
        {
            e.printStackTrace();
        }
    }
%>

解决方案 »

  1.   

    把上面代码中的ORDER BY deptCaste DESC去掉也能打印所有记录,难道这是oracle的bug吗?????
    哪位高手指点一下啊
      

  2.   

    Oracle打上最新的补丁没有?按理不应该是Oracle的Bug,我用9i for Linux就没有这个问题。
      

  3.   

    这个版本的oracle还有什么补丁,哪里有下载的呢
      

  4.   

    我是oracle9+win2k,我试了下面的几种情况:
    select +order by 不行
    select all +order by 可以
    select * +order by可以
    select 可以。
    是我的oracle设置有问题吗??
      

  5.   

    总算解决了第一个问题,流已被关闭,原来去掉setReadOnly就好了。
    //conObject.sqlCon.setReadOnly(true);
    pst = conObject.sqlCon.prepareStatement(strExecSql);
    rs = pst.executeQuery();
    //conObject.sqlCon.setReadOnly(false);
    为什么再sqlserver下又没问题,在oracle下就读取第一行数据时有问题,而其他行没问题
      

  6.   

    有个问题,干吗不用SQL server 的导出工具呢?
      

  7.   

    第2个问题也解决了,原来我们程序里的,peraperStatement时都加了( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY)参数,去掉就好了。