Overview

Namespaces

  • None
  • Yajra
    • Oci8
      • Connectors
      • Eloquent
      • Query
        • Grammars
        • Processors
      • Schema
        • Grammars

Classes

  • Yajra\Oci8\Connectors\OracleConnector
  • Yajra\Oci8\Eloquent\OracleEloquent
  • Yajra\Oci8\Oci8Connection
  • Yajra\Oci8\Oci8ServiceProvider
  • Yajra\Oci8\Query\Grammars\OracleGrammar
  • Yajra\Oci8\Query\OracleBuilder
  • Yajra\Oci8\Query\Processors\OracleProcessor
  • Yajra\Oci8\Schema\Comment
  • Yajra\Oci8\Schema\Grammars\OracleGrammar
  • Yajra\Oci8\Schema\OracleAutoIncrementHelper
  • Yajra\Oci8\Schema\OracleBlueprint
  • Yajra\Oci8\Schema\OracleBuilder
  • Yajra\Oci8\Schema\Sequence
  • Yajra\Oci8\Schema\Trigger

Traits

  • Yajra\Oci8\OracleReservedWords

Functions

  • config_path
  • Overview
  • Namespace
  • Class
  1: <?php
  2: 
  3: namespace Yajra\Oci8;
  4: 
  5: use Doctrine\DBAL\Connection as DoctrineConnection;
  6: use Doctrine\DBAL\Driver\OCI8\Driver as DoctrineDriver;
  7: use Illuminate\Database\Connection;
  8: use Illuminate\Database\Grammar;
  9: use PDO;
 10: use Yajra\Oci8\Query\Grammars\OracleGrammar as QueryGrammar;
 11: use Yajra\Oci8\Query\OracleBuilder as QueryBuilder;
 12: use Yajra\Oci8\Query\Processors\OracleProcessor as Processor;
 13: use Yajra\Oci8\Schema\Grammars\OracleGrammar as SchemaGrammar;
 14: use Yajra\Oci8\Schema\OracleBuilder as SchemaBuilder;
 15: use Yajra\Oci8\Schema\Sequence;
 16: use Yajra\Oci8\Schema\Trigger;
 17: 
 18: class Oci8Connection extends Connection
 19: {
 20:     /**
 21:      * @var string
 22:      */
 23:     protected $schema;
 24: 
 25:     /**
 26:      * @var \Yajra\Oci8\Schema\Sequence
 27:      */
 28:     protected $sequence;
 29: 
 30:     /**
 31:      * @var \Yajra\Oci8\Schema\Trigger
 32:      */
 33:     protected $trigger;
 34: 
 35:     /**
 36:      * @param PDO|\Closure $pdo
 37:      * @param string $database
 38:      * @param string $tablePrefix
 39:      * @param array $config
 40:      */
 41:     public function __construct($pdo, $database = '', $tablePrefix = '', array $config = [])
 42:     {
 43:         parent::__construct($pdo, $database, $tablePrefix, $config);
 44:         $this->sequence = new Sequence($this);
 45:         $this->trigger  = new Trigger($this);
 46:     }
 47: 
 48:     /**
 49:      * Get current schema.
 50:      *
 51:      * @return string
 52:      */
 53:     public function getSchema()
 54:     {
 55:         return $this->schema;
 56:     }
 57: 
 58:     /**
 59:      * Set current schema.
 60:      *
 61:      * @param string $schema
 62:      * @return $this
 63:      */
 64:     public function setSchema($schema)
 65:     {
 66:         $this->schema = $schema;
 67:         $sessionVars  = [
 68:             'CURRENT_SCHEMA' => $schema,
 69:         ];
 70: 
 71:         return $this->setSessionVars($sessionVars);
 72:     }
 73: 
 74:     /**
 75:      * Update oracle session variables.
 76:      *
 77:      * @param array $sessionVars
 78:      * @return $this
 79:      */
 80:     public function setSessionVars(array $sessionVars)
 81:     {
 82:         $vars = [];
 83:         foreach ($sessionVars as $option => $value) {
 84:             if (strtoupper($option) == 'CURRENT_SCHEMA') {
 85:                 $vars[] = "$option  = $value";
 86:             } else {
 87:                 $vars[] = "$option  = '$value'";
 88:             }
 89:         }
 90:         $sql = "ALTER SESSION SET " . implode(" ", $vars);
 91:         $this->statement($sql);
 92: 
 93:         return $this;
 94:     }
 95: 
 96:     /**
 97:      * Get sequence class.
 98:      *
 99:      * @return \Yajra\Oci8\Schema\Sequence
100:      */
101:     public function getSequence()
102:     {
103:         return $this->sequence;
104:     }
105: 
106:     /**
107:      * Set sequence class.
108:      *
109:      * @param \Yajra\Oci8\Schema\Sequence $sequence
110:      * @return \Yajra\Oci8\Schema\Sequence
111:      */
112:     public function setSequence(Sequence $sequence)
113:     {
114:         return $this->sequence = $sequence;
115:     }
116: 
117:     /**
118:      * Get oracle trigger class.
119:      *
120:      * @return \Yajra\Oci8\Schema\Trigger
121:      */
122:     public function getTrigger()
123:     {
124:         return $this->trigger;
125:     }
126: 
127:     /**
128:      * Set oracle trigger class.
129:      *
130:      * @param \Yajra\Oci8\Schema\Trigger $trigger
131:      * @return \Yajra\Oci8\Schema\Trigger
132:      */
133:     public function setTrigger(Trigger $trigger)
134:     {
135:         return $this->trigger = $trigger;
136:     }
137: 
138:     /**
139:      * Get a schema builder instance for the connection.
140:      *
141:      * @return \Yajra\Oci8\Schema\OracleBuilder
142:      */
143:     public function getSchemaBuilder()
144:     {
145:         if (is_null($this->schemaGrammar)) {
146:             $this->useDefaultSchemaGrammar();
147:         }
148: 
149:         return new SchemaBuilder($this);
150:     }
151: 
152:     /**
153:      * Begin a fluent query against a database table.
154:      *
155:      * @param  string $table
156:      * @return \Yajra\Oci8\Query\OracleBuilder
157:      */
158:     public function table($table)
159:     {
160:         $processor = $this->getPostProcessor();
161: 
162:         $query = new QueryBuilder($this, $this->getQueryGrammar(), $processor);
163: 
164:         return $query->from($table);
165:     }
166: 
167:     /**
168:      * Set oracle session date format.
169:      *
170:      * @param string $format
171:      * @return $this
172:      */
173:     public function setDateFormat($format = 'YYYY-MM-DD HH24:MI:SS')
174:     {
175:         $sessionVars = [
176:             'NLS_DATE_FORMAT'      => $format,
177:             'NLS_TIMESTAMP_FORMAT' => $format,
178:         ];
179: 
180:         return $this->setSessionVars($sessionVars);
181:     }
182: 
183:     /**
184:      * Get doctrine connection.
185:      *
186:      * @return \Doctrine\DBAL\Connection
187:      */
188:     public function getDoctrineConnection()
189:     {
190:         $driver = $this->getDoctrineDriver();
191: 
192:         $data = ['pdo' => $this->getPdo(), 'user' => $this->getConfig('database')];
193: 
194:         return new DoctrineConnection($data, $driver);
195:     }
196: 
197:     /**
198:      * Get doctrine driver.
199:      *
200:      * @return \Doctrine\DBAL\Driver\OCI8\Driver
201:      */
202:     protected function getDoctrineDriver()
203:     {
204:         return new DoctrineDriver;
205:     }
206: 
207:     /**
208:      * Get the default query grammar instance.
209:      *
210:      * @return \Yajra\Oci8\Query\Grammars\OracleGrammar
211:      */
212:     protected function getDefaultQueryGrammar()
213:     {
214:         return $this->withTablePrefix(new QueryGrammar);
215:     }
216: 
217:     /**
218:      * Set the table prefix and return the grammar.
219:      *
220:      * @param \Illuminate\Database\Grammar $grammar
221:      * @return \Illuminate\Database\Grammar
222:      */
223:     public function withTablePrefix(Grammar $grammar)
224:     {
225:         return parent::withTablePrefix($grammar);
226:     }
227: 
228:     /**
229:      * Get the default schema grammar instance.
230:      *
231:      * @return \Yajra\Oci8\Schema\Grammars\OracleGrammar
232:      */
233:     protected function getDefaultSchemaGrammar()
234:     {
235:         return $this->withTablePrefix(new SchemaGrammar);
236:     }
237: 
238:     /**
239:      * Get the default post processor instance.
240:      *
241:      * @return \Yajra\Oci8\Query\Processors\OracleProcessor
242:      */
243:     protected function getDefaultPostProcessor()
244:     {
245:         return new Processor;
246:     }
247: }
248: 
API documentation generated by ApiGen