Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

Differences Between: [Versions 310 and 402] [Versions 311 and 402] [Versions 39 and 402]

   1  <?php
   2  /**
   3   * Oracle 8.0.5 (oci8) driver
   4   *
   5   * @deprecated
   6   *
   7   * Optimizes selectLimit() performance with FIRST_ROWS hint.
   8   *
   9   * This file is part of ADOdb, a Database Abstraction Layer library for PHP.
  10   *
  11   * @package ADOdb
  12   * @link https://adodb.org Project's web site and documentation
  13   * @link https://github.com/ADOdb/ADOdb Source code and issue tracker
  14   *
  15   * The ADOdb Library is dual-licensed, released under both the BSD 3-Clause
  16   * and the GNU Lesser General Public Licence (LGPL) v2.1 or, at your option,
  17   * any later version. This means you can use it in proprietary products.
  18   * See the LICENSE.md file distributed with this source code for details.
  19   * @license BSD-3-Clause
  20   * @license LGPL-2.1-or-later
  21   *
  22   * @copyright 2000-2013 John Lim
  23   * @copyright 2014 Damien Regad, Mark Newnham and the ADOdb community
  24   */
  25  
  26  // security - hide paths
  27  if (!defined('ADODB_DIR')) die();
  28  
  29  include_once(ADODB_DIR.'/drivers/adodb-oci8.inc.php');
  30  
  31  class ADODB_oci805 extends ADODB_oci8 {
  32  	 var $databaseType = "oci805";
  33  	 var $connectSID = true;
  34  
  35  	function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0)
  36  	 {
  37  	 	 // seems that oracle only supports 1 hint comment in 8i
  38  	 	 if (strpos($sql,'/*+') !== false)
  39  	 	 	 $sql = str_replace('/*+ ','/*+FIRST_ROWS ',$sql);
  40  	 	 else
  41  	 	 	 $sql = preg_replace('/^[ \t\n]*select/i','SELECT /*+FIRST_ROWS*/',$sql);
  42  
  43  	 	 /*
  44  	 	 	 The following is only available from 8.1.5 because order by in inline views not
  45  	 	 	 available before then...
  46  	 	 	 http://www.jlcomp.demon.co.uk/faq/top_sql.html
  47  	 	 if ($nrows > 0) {
  48  	 	 	 if ($offset > 0) $nrows += $offset;
  49  	 	 	 $sql = "select * from ($sql) where rownum <= $nrows";
  50  	 	 	 $nrows = -1;
  51  	 	 }
  52  	 	 */
  53  
  54  	 	 return ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache);
  55  	 }
  56  }
  57  
  58  class ADORecordset_oci805 extends ADORecordset_oci8 {
  59  	 var $databaseType = "oci805";
  60  }