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";
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.
"'");
35 function MetaTables($ttype=
false,$showSchema=
false,$mask=
false)
39 $mask = $this->qstr(strtoupper($mask));
40 $this->metaTablesSQL .=
" AND table_name like $mask";
42 $ret = ADOConnection::MetaTables($ttype,$showSchema);
45 $this->metaTablesSQL = $save;
52 global $ADODB_FETCH_MODE;
55 $save = $ADODB_FETCH_MODE;
56 $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
57 if ($this->fetchMode !==
false) $savem = $this->SetFetchMode(
false);
59 $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table)));
61 if (isset($savem)) $this->SetFetchMode($savem);
62 $ADODB_FETCH_MODE = $save;
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) {
75 $fld->max_length =
$rs->fields[4];
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];
81 if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;
82 else $retarr[strtoupper($fld->name)] = $fld;
MetaColumns($table, $normalize=true)
if(isset($_REQUEST['nrows'])) else $rs
MetaTables($ttype=false, $showSchema=false, $mask=false)