0

次の操作を実行するための同等のOracle(11g)コードは何でしょうか。

MySQLの場合

ps = con.prepareStatement("select SQL_CALC_FOUND_ROWS from student_details where UPPER(name) like UPPER(?) limit " + offset + ", " + noOfRecords);

rs = ps.executeQuery("SELECT FOUND_ROWS()");

4

2 に答える 2

1

次のようにしてみてください。

SELECT *
FROM (select t.*, rownum rn, count(*) over() as SQL_CALC_FOUND_ROWS
        from student_details t
       where UPPER(name) like UPPER(?))
WHERE rn <= offset 

WHERE rn <= offset「SQL_CALC_FOUND_ROWS」で返される値は、句がない場合に選択されたレコードの数になります。

于 2012-07-08T10:40:28.453 に答える
0

あなたのステートメントで私が目にするRDBMS固有のものは、「upper()」と「limit」の2つだけです。

「制限」の回避策として Oracle の「rownum」を使用するためのリンクを次に示します。

「Upper()」は、Oracle でそのまま正常に動作するはずです。

于 2012-07-07T19:08:21.903 に答える