[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/adodb/drivers/ -> adodb-pdo_oci.inc.php (source)

   1  <?php
   2  
   3  
   4  /*
   5  V5.19  23-Apr-2014  (c) 2000-2014 John Lim (jlim#natsoft.com). All rights reserved.
   6    Released under both BSD license and Lesser GPL library license.
   7    Whenever there is any discrepancy between the two licenses,
   8    the BSD license will take precedence.
   9    Set tabs to 8.
  10  
  11  */
  12  
  13  class ADODB_pdo_oci extends ADODB_pdo_base {
  14  
  15      var $concat_operator='||';
  16      var $sysDate = "TRUNC(SYSDATE)";
  17      var $sysTimeStamp = 'SYSDATE';
  18      var $NLS_DATE_FORMAT = 'YYYY-MM-DD';  // To include time, use 'RRRR-MM-DD HH24:MI:SS'
  19      var $random = "abs(mod(DBMS_RANDOM.RANDOM,10000001)/10000000)";
  20      var $metaTablesSQL = "select table_name,table_type from cat where table_type in ('TABLE','VIEW')";
  21      var $metaColumnsSQL = "select cname,coltype,width, SCALE, PRECISION, NULLS, DEFAULTVAL from col where tname='%s' order by colno";
  22  
  23       var $_initdate = true;
  24      var $_hasdual = true;
  25  
  26  	function _init($parentDriver)
  27      {
  28          $parentDriver->_bindInputArray = true;
  29          $parentDriver->_nestedSQL = true;
  30          if ($this->_initdate) {
  31              $parentDriver->Execute("ALTER SESSION SET NLS_DATE_FORMAT='".$this->NLS_DATE_FORMAT."'");
  32          }
  33      }
  34  
  35  	function MetaTables($ttype=false,$showSchema=false,$mask=false)
  36      {
  37          if ($mask) {
  38              $save = $this->metaTablesSQL;
  39              $mask = $this->qstr(strtoupper($mask));
  40              $this->metaTablesSQL .= " AND table_name like $mask";
  41          }
  42          $ret = ADOConnection::MetaTables($ttype,$showSchema);
  43  
  44          if ($mask) {
  45              $this->metaTablesSQL = $save;
  46          }
  47          return $ret;
  48      }
  49  
  50  	function MetaColumns($table,$normalize=true)
  51      {
  52      global $ADODB_FETCH_MODE;
  53  
  54          $false = false;
  55          $save = $ADODB_FETCH_MODE;
  56          $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
  57          if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
  58  
  59          $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table)));
  60  
  61          if (isset($savem)) $this->SetFetchMode($savem);
  62          $ADODB_FETCH_MODE = $save;
  63          if (!$rs) {
  64              return $false;
  65          }
  66          $retarr = array();
  67          while (!$rs->EOF) { //print_r($rs->fields);
  68              $fld = new ADOFieldObject();
  69                 $fld->name = $rs->fields[0];
  70                 $fld->type = $rs->fields[1];
  71                 $fld->max_length = $rs->fields[2];
  72              $fld->scale = $rs->fields[3];
  73              if ($rs->fields[1] == 'NUMBER' && $rs->fields[3] == 0) {
  74                  $fld->type ='INT';
  75                   $fld->max_length = $rs->fields[4];
  76              }
  77                 $fld->not_null = (strncmp($rs->fields[5], 'NOT',3) === 0);
  78              $fld->binary = (strpos($fld->type,'BLOB') !== false);
  79              $fld->default_value = $rs->fields[6];
  80  
  81              if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;
  82              else $retarr[strtoupper($fld->name)] = $fld;
  83              $rs->MoveNext();
  84          }
  85          $rs->Close();
  86          if (empty($retarr))
  87              return  $false;
  88          else
  89              return $retarr;
  90      }
  91  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1