Jednoduché pripojenie k SQL Oracle 11g (oci driver)
- Danndy
- Člen | 35
Zdravím vás,
Potreboval by som poradiť, ako sa pripojiť cez NetteDatabase/Dibi na Oracle databázu pomocou oci driver-u. Vôbec si neviem dať rady, ako má vyzerať confi-g pre takéto pripojenie.
Nenašiel by sa tu niekde presnejší návod čo napísať do config.neon? Bol by som veľmi vďačný.
(oci driver mám na localhoste rozbehaný a funkčný).
Ďakujem.
- CZechBoY
- Člen | 3608
já používám třeba takhle
database:
dsn: 'oracle:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=abc.server.cz)(PORT=1521)))(CONNECT_DATA=(SID=databaze))(CHARSET=UTF8))'
user: uzivatel
password: heslo
viz https://docs.oracle.com/…G/naming.htm#…
Potom používám https://github.com/taq/pdooci, které
použiju v Nette/Database a pak už je to vesměs stejné.
Ještě teda jsem si upravil OciDriver aby vůbec nedělal query na
strukturu.
Editoval CZechBoY (2. 12. 2016 20:48)
- Danndy
- Člen | 35
@CZechBoY
nastavil som to podla tovojho con. stringu takto:
dsn: 'oci:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.sk)(PORT=1521))(CONNECT_DATA=(SID=orcl)))'
Ale vhadzuje mi chybu:
SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12560: TNS:protocol adapter error (ext\pdo_oci\oci_driver.c:635)
Nevieš náhodou kde by mohol byť problém?
- CZechBoY
- Člen | 3608
TNS? To je ten název souboru, který to potom použije?
http://cz.php.net/oci_connect#…
- Danndy
- Člen | 35
@CZechBoY
Keď to skúšam ako je to v návode čo si poslal:
$cs = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.sk)(PORT=1521))(CONNECT_DATA=(SID=orcl)))";
$conn = oci_connect('user', 'pass', $cs);
tak ma bez problémov pripojí. Ale cez nette mi hádže hentú chybu. Asi je nejaký problém v tom pdo. Ale netuším ako to poriešť :/
- CZechBoY
- Člen | 3608
Mně se právě nepodařilo přes klasický pdo připojit tak jsem musel
sáhnout po emulátoru pdo.
Potom v Nette\Database\Connection::connect
jsem si upravil
vytváření PDO instance
if (strpos($this->params[0], 'oci:') === 0) {
$this->pdo = new \PDOOCI\PDO($this->params[0], $this->params[1], $this->params[2], $this->options);
} else {
$this->pdo = new \PDO($this->params[0], $this->params[1], $this->params[2], $this->options);
}