Oracle Database 10g Express Clientセットアップメモ .

Oracle Database 10g Express Client + ODBCで接続するまでの手順 .

  1. まずはココ でOracle Database 10g Express Clientをダウンロードしてインストールする。
    http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html
  1. インストール後、おそらくPATHが通っていると思うが念のため確認しておく。
  2. 環境変数 NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE を設定する。
  3. コントロールパネル - 管理ツール - データ ソース (ODBC)で、以下の設定をする。
  • システムDSN - Oracle in XEClient
    • データソース名 : 任意の名前
    • 説明:適当にわかるように説明を入力
    • TNSサービス名:おそらくここで皆つまづく。TNSサービス名入力ボックスには以下のように入力する
      Oracleが動いているマシン名/サービス名
      以上、接続テストでユーザー名、パスワードを入力すれば接続に成功するはず。

PHP .

php.iniを開いて、

;extension=php_oci8.dll

となっているところを

extension=php_oci8.dll

としてコメントをはずす。
Apacheを再起動してerror.logに何もエラーが出ていないことを確認する。
phpinfo()を実施し、oci8-OCI8 Support = enabledになっていれば、PHPとOracleXEの接続は完了している。
以下、確認用のサンプル。

<?
 phpinfo();
?>

oci8の所を見る。
以下のように表示されていれば動作している。

OCI8 Supportenabled
Version1.2.4
Revision$Revision: 1.269.2.16.2.38 $
Active Persistent Connections0
Active Connections0
Temporary Lob supportenabled
Collections supportenabled

PHPでOracleのテーブルをSELECTして表示するまでのサンプル .

Oracle Database 10g Express Clientだと、oci_connectの書式が若干違う。
以下、Oracle接続〜SELECT〜表示するまでのサンプルです。

ファイル名:selectemp.php

<?php

$servername = "p4db";       // マシン名です。
$dbname     = "sampledb";     // ODBC設定で入力した名前
//Oracleへ接続
$cn = oci_connect("scott", "tiger", "//".$servername."/".$dbname);

$strSQL = "SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM EMP";
$rs = oci_parse($cn, $strSQL);

oci_execute($rs, OCI_DEFAULT);
print "<table border=1>";
while (oci_fetch($rs)) {
    print "<tr>";
    print "<td>".oci_result($rs, "EMPNO");
    print "<td>".oci_result($rs, "ENAME");
    print "<td>".oci_result($rs, "JOB");
    print "<td>".oci_result($rs, "MGR");
    print "<td>".oci_result($rs, "HIREDATE");
    print "<td>".oci_result($rs, "SAL");
    print "<td>".oci_result($rs, "COMM");
    print "<td>".oci_result($rs, "DEPTNO");
    print "</tr>";
}
print "</table>";
oci_close($cn);

?>