propel-adapter
[ class tree: propel-adapter ] [ index: propel-adapter ] [ all elements ]

Source for file DBOracle.php

Documentation is available at DBOracle.php

  1. <?php
  2.  
  3. /*
  4.  *  $Id: DBOracle.php 718 2007-10-26 01:31:34Z heltem $
  5.  *
  6.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  7.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  8.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  9.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  10.  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  11.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  12.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  13.  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  14.  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  15.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  16.  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  17.  *
  18.  * This software consists of voluntary contributions made by many individuals
  19.  * and is licensed under the LGPL. For more information please see
  20.  * <http://propel.phpdb.org>.
  21.  */
  22.  
  23. /**
  24.  * Oracle adapter.
  25.  *
  26.  * @author     David Giffin <david@giffin.org> (Propel)
  27.  * @author     Hans Lellelid <hans@xmpl.org> (Propel)
  28.  * @author     Jon S. Stevens <jon@clearink.com> (Torque)
  29.  * @author     Brett McLaughlin <bmclaugh@algx.net> (Torque)
  30.  * @author     Bill Schneider <bschneider@vecna.com> (Torque)
  31.  * @author     Daniel Rall <dlr@finemaltcoding.com> (Torque)
  32.  * @version    $Revision: 718 $
  33.  * @package    propel.adapter
  34.  */
  35. class DBOracle extends DBAdapter {
  36.  
  37.     /**
  38.      * This method is used to ignore case.
  39.      *
  40.      * @param      string $in The string to transform to upper case.
  41.      * @return     string The upper case string.
  42.      */
  43.     public function toUpperCase($in)
  44.     {
  45.         return "UPPER(" $in ")";
  46.     }
  47.  
  48.     /**
  49.      * This method is used to ignore case.
  50.      *
  51.      * @param      string $in The string whose case to ignore.
  52.      * @return     string The string in a case that can be ignored.
  53.      */
  54.     public function ignoreCase($in)
  55.     {
  56.         return "UPPER(" $in ")";
  57.     }
  58.  
  59.     /**
  60.      * Returns SQL which concatenates the second string to the first.
  61.      *
  62.      * @param      string String to concatenate.
  63.      * @param      string String to append.
  64.      * @return     string 
  65.      */
  66.     public function concatString($s1$s2)
  67.     {
  68.         return "CONCAT($s1$s2)";
  69.     }
  70.  
  71.     /**
  72.      * Returns SQL which extracts a substring.
  73.      *
  74.      * @param      string String to extract from.
  75.      * @param      int Offset to start from.
  76.      * @param      int Number of characters to extract.
  77.      * @return     string 
  78.      */
  79.     public function subString($s$pos$len)
  80.     {
  81.         return "SUBSTR($s$pos$len)";
  82.     }
  83.  
  84.     /**
  85.      * Returns SQL which calculates the length (in chars) of a string.
  86.      *
  87.      * @param      string String to calculate length of.
  88.      * @return     string 
  89.      */
  90.     public function strLength($s)
  91.     {
  92.         return "LENGTH($s)";
  93.     }
  94.  
  95.     /**
  96.      * @see        DBAdapter::applyLimit()
  97.      */
  98.     public function applyLimit(&$sql$offset$limit)
  99.     {
  100.          $sql =
  101.             'SELECT B.* FROM (  '
  102.             .  'SELECT A.*, rownum AS PROPEL$ROWNUM FROM (  '
  103.             . $sql
  104.             . '  ) A '
  105.             .  ' ) B WHERE ';
  106.  
  107.         if $offset {
  108.             $sql                .= ' B.PROPEL$ROWNUM > ' $offset;
  109.  
  110.             if $limit )
  111.             {
  112.                 $sql            .= ' AND B.PROPEL$ROWNUM <= '
  113.                                     . $offset $limit );
  114.             }
  115.         else {
  116.             $sql                .= ' B.PROPEL$ROWNUM <= ' $limit;
  117.         }
  118.     }
  119.  
  120.     protected function getIdMethod()
  121.     {
  122.         return DBAdapter::ID_METHOD_SEQUENCE;
  123.     }
  124.  
  125.     public function getId(PDO $con$name null)
  126.     {
  127.         if ($name === null{
  128.             throw new PropelException("Unable to fetch next sequence ID without sequence name.");
  129.         }
  130.  
  131.         $stmt $con->query("SELECT " $name ".nextval FROM dual");
  132.         $row $stmt->fetch(PDO::FETCH_NUM);
  133.  
  134.         return $row[0];
  135.     }
  136.  
  137.     public function random($seed=NULL)
  138.     {
  139.         return 'dbms_random.value';
  140.     }
  141.  
  142.  
  143. }

Documentation generated on Thu, 22 Nov 2007 03:33:42 +0000 by phpDocumentor 1.4.0