--TEST--
oci_field_*() family: basic column types
--SKIPIF--
<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
--FILE--
<?php

require(dirname(__FILE__)."/connect.inc");

// Initialization
$stmtarray = array(
    "drop table field_funcs3_tab",
    "create table field_funcs3_tab(c1_c char(2), c2_v varchar2(2), c3_n number, c4_d date)",
    "insert into field_funcs3_tab values ('c1', 'c2', 3, '01-Jan-2010')"
);

$v = oci_server_version($c);
if (strpos($v, 'Oracle TimesTen') === false) {
    oci8_test_sql_execute($c, array("alter session set nls_date_format = 'DD-MON-YYYY'"));
}
oci8_test_sql_execute($c, $stmtarray);

// Run Test

$select_sql = "select * from field_funcs3_tab";

if (!($s = oci_parse($c, $select_sql))) {
	die("oci_parse(select) failed!\n");
}

if (!oci_execute($s)) {
	die("oci_execute(select) failed!\n");
}

$row = oci_fetch_array($s, OCI_NUM + OCI_RETURN_NULLS + OCI_RETURN_LOBS);
var_dump($row);

foreach ($row as $num => $field) {
	$num++;
	var_dump(oci_field_is_null($s, $num));
	var_dump(oci_field_name($s, $num));
	var_dump(oci_field_type($s, $num));
	var_dump(oci_field_type_raw($s, $num));
	var_dump(oci_field_scale($s, $num));
	var_dump(oci_field_precision($s, $num));
	var_dump(oci_field_size($s, $num));
}

// Clean up

$stmtarray = array(
	"drop table field_funcs3_tab"
);

oci8_test_sql_execute($c, $stmtarray);

?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
array(4) {
  [0]=>
  string(2) "c1"
  [1]=>
  string(2) "c2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1%r[19]%r) "%r(01-JAN-2010|0001-01-20 10:00:00)%r"
}
bool(false)
string(4) "C1_C"
string(4) "CHAR"
int(96)
int(0)
int(0)
int(2)
bool(false)
string(4) "C2_V"
string(8) "VARCHAR2"
int(1)
int(0)
int(0)
int(2)
bool(false)
string(4) "C3_N"
string(6) "NUMBER"
int(2)
int(-127)
int(0)
int(22)
bool(false)
string(4) "C4_D"
string(4) "DATE"
int(12)
int(0)
int(0)
int(7)
===DONE===