本文整理汇总了PHP中oci_field_scale函数的典型用法代码示例。如果您正苦于以下问题:PHP oci_field_scale函数的具体用法?PHP oci_field_scale怎么用?PHP oci_field_scale使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了oci_field_scale函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFields
/**
* Returns an array of fields according to columns in the result.
*
* @return \Bitrix\Main\Entity\ScalarField[]
*/
public function getFields()
{
if ($this->resultFields == null) {
$this->resultFields = array();
if (is_resource($this->resource)) {
$numFields = oci_num_fields($this->resource);
if ($numFields > 0 && $this->connection) {
$helper = $this->connection->getSqlHelper();
for ($i = 1; $i <= $numFields; $i++) {
$name = oci_field_name($this->resource, $i);
$type = oci_field_type($this->resource, $i);
$parameters = array("precision" => oci_field_precision($this->resource, $i), "scale" => oci_field_scale($this->resource, $i), "size" => oci_field_size($this->resource, $i));
$this->resultFields[$name] = $helper->getFieldByColumnType($name, $type, $parameters);
}
}
}
}
return $this->resultFields;
}
示例2: _FetchField
function _FetchField($fieldOffset = -1)
{
global $QUERCUS;
$fld = new ADOFieldObject();
if (!empty($QUERCUS)) {
$fld->name = oci_field_name($this->_queryID, $fieldOffset);
$fld->type = oci_field_type($this->_queryID, $fieldOffset);
$fld->max_length = oci_field_size($this->_queryID, $fieldOffset);
//if ($fld->name == 'VAL6_NUM_12_4') $fld->type = 'NUMBER';
switch ($fld->type) {
case 'string':
$fld->type = 'VARCHAR';
break;
case 'real':
$fld->type = 'NUMBER';
break;
}
} else {
$fieldOffset += 1;
$fld->name = oci_field_name($this->_queryID, $fieldOffset);
$fld->type = oci_field_type($this->_queryID, $fieldOffset);
$fld->max_length = oci_field_size($this->_queryID, $fieldOffset);
}
switch ($fld->type) {
case 'NUMBER':
$p = oci_field_precision($this->_queryID, $fieldOffset);
$sc = oci_field_scale($this->_queryID, $fieldOffset);
if ($p != 0 && $sc == 0) {
$fld->type = 'INT';
}
$fld->scale = $p;
break;
case 'CLOB':
case 'NCLOB':
case 'BLOB':
$fld->max_length = -1;
break;
}
return $fld;
}
示例3: getColumnMeta
/**
* Get column meta data
*
* @param int $colnum column number
*
* @return mixed column meta data
*/
public function getColumnMeta($colnum = 0)
{
if (!$this->_stmt) {
return null;
}
$name = \oci_field_name($this->_stmt, $colnum + 1);
$len = \oci_field_size($this->_stmt, $colnum + 1);
$prec = \oci_field_scale($this->_stmt, $colnum + 1);
$type = \oci_field_type($this->_stmt, $colnum + 1);
return array("name" => $name, "len" => $len, "precision" => $prec, "driver:decl_type" => $type);
}
示例4: getResultColumns
/**
* Returns metadata for all columns in a result set.
* @return array
*/
public function getResultColumns()
{
$count = oci_num_fields($this->resultSet);
$columns = [];
for ($i = 1; $i <= $count; $i++) {
$type = oci_field_type($this->resultSet, $i);
$columns[] = ['name' => oci_field_name($this->resultSet, $i), 'table' => NULL, 'fullname' => oci_field_name($this->resultSet, $i), 'nativetype' => $type === 'NUMBER' && oci_field_scale($this->resultSet, $i) === 0 ? 'INTEGER' : $type];
}
return $columns;
}
示例5: _FetchField
/**
* Get column information in the Recordset object.
* fetchField() can be used in order to obtain information about fields
* in a certain query result. If the field offset isn't specified, the next
* field that wasn't yet retrieved by fetchField() is retrieved
*
* @return object containing field information
*/
function _FetchField($fieldOffset = -1)
{
$fld = new ADOFieldObject();
$fieldOffset += 1;
$fld->name = oci_field_name($this->_queryID, $fieldOffset);
if (ADODB_ASSOC_CASE == ADODB_ASSOC_CASE_LOWER) {
$fld->name = strtolower($fld->name);
}
$fld->type = oci_field_type($this->_queryID, $fieldOffset);
$fld->max_length = oci_field_size($this->_queryID, $fieldOffset);
switch ($fld->type) {
case 'NUMBER':
$p = oci_field_precision($this->_queryID, $fieldOffset);
$sc = oci_field_scale($this->_queryID, $fieldOffset);
if ($p != 0 && $sc == 0) {
$fld->type = 'INT';
}
$fld->scale = $p;
break;
case 'CLOB':
case 'NCLOB':
case 'BLOB':
$fld->max_length = -1;
break;
}
return $fld;
}
示例6: getColumnMeta
public function getColumnMeta($column)
{
if ($column >= $this->columnCount()) {
return false;
}
$column++;
$result = array();
$result['native_type'] = oci_field_type($this->_result, $column);
if (oci_field_is_null($this->_result, $column)) {
$result['flags'] = 'is_null';
}
$result['name'] = oci_field_name($this->_result, $column);
$result['len'] = oci_field_size($this->_result, $column);
$result['precision'] = oci_field_precision($this->_result, $column) . '.' . oci_field_scale($this->_result, $column);
$result['pdo_type'] = PDO::PARAM_STR;
return $result;
}
示例7: getColumnsMeta
/**
* Returns metadata for all columns in a result set.
*
* @return array
*/
public function getColumnsMeta()
{
$count = oci_num_fields($this->resultSet);
$meta = array();
for ($i = 1; $i <= $count; $i++) {
// items 'name' and 'table' are required
$meta[] = array('name' => oci_field_name($this->resultSet, $i), 'table' => NULL, 'type' => oci_field_type($this->resultSet, $i), 'size' => oci_field_size($this->resultSet, $i), 'scale' => oci_field_scale($this->resultSet, $i), 'precision' => oci_field_precision($this->resultSet, $i));
}
return $meta;
}
示例8: FieldScale
public function FieldScale($statement, int $field)
{
return oci_field_scale($statement, $field);
}
示例9: getField
public function getField($field)
{
set_error_handler(static::getErrorHandler());
$name = oci_field_name($this->resource, $field);
$precision = oci_field_precision($this->resource, $field);
$scale = oci_field_scale($this->resource, $field);
$size = oci_field_size($this->resource, $field);
$rawType = oci_field_type_raw($this->resource, $field);
$type = oci_field_type($this->resource, $field);
$value = oci_field_is_null($this->resource, $field) ? null : oci_result($this->resource, $field);
$field = new Oci8Field($name, $value, $size, $precision, $scale, $type, $rawType);
restore_error_handler();
return $field;
}
示例10: field_info
function field_info($query, $count)
{
if ($this->debug) {
echo "<pre style=\"color : green\">Getting column information {$this->dbpath} <p style=\"color:purple;\"> {$query} </p></pre>";
}
$nooffields = 0;
//Validate the sql statement and make adjustments
switch ($this->dbtype) {
/* Firebird Functionality */
case "firebird":
//write some things here
$col_info = ibase_field_info($query, $count);
break;
/* SQLite Functionality */
/* SQLite Functionality */
case "sqlite":
putenv("TMP=" . $this->tmppath);
$name = sqlite_field_name($query, $count);
//echo $name;
$col_info["alias"] = $name;
$col_info["name"] = $name;
break;
/* Oracle Functionality */
/* Oracle Functionality */
case "oracle":
$column_name = oci_field_name($query, $count);
$column_type = oci_field_type($query, $count);
$column_size = oci_field_size($query, $count);
$column_prec = oci_field_precision($query, $count);
$column_scale = oci_field_scale($query, $count);
$col_info["name"] = $column_name;
$col_info["alias"] = $column_name;
$col_info["length"] = $column_size;
$col_info["prec"] = $column_prec;
$col_info["type"] = $column_type;
$col_info["scale"] = $column_scale;
break;
/* PGSQL Functionality */
/* PGSQL Functionality */
case "pgsql":
$col_info["name"] = pg_field_name($query, $count);
$col_info["alias"] = NULL;
// always set to NULL
$col_info["relation"] = NULL;
// always set to NULL
$col_info["length"] = pg_field_size($query, $count);
$col_info["type"] = pg_field_type($query, $count);
break;
}
if ($this->debug) {
echo "<pre style=\"color : blue\">Column Info fetched for Column {$count} \n </pre>";
}
return $col_info;
}
示例11: oci_field_scale
public static function oci_field_scale($connection, $statement, $fieldNumber) {
self::checkOCIExtension('oci_field_scale');
$scale = @oci_field_scale($statement, $fieldNumber);
if ($scale === FALSE) {
$error = self::oci_error($statement);
throw new IllegalStateException(t(
'Could not retrieve the scale of a field (field number: %fieldNumber): %error',
array('%fieldNumber' => $fieldNumber, '%error' => t($error['message']))));
}
return $scale;
}
示例12: getColumnScale
/**
* Returns the scale of the specified column
*
* @access public
* @param integer $Column
* @return integer
*/
function getColumnScale($iColumn)
{
if ((is_int($iColumn) or is_string($iColumn)) && $iColumn < oci_num_fields($id)) {
$id = $this->curs_id ? $this->curs_id : $this->stmt_id;
if (is_int($iColumn)) {
$iColumn++;
return oci_field_scale($id, $iColumn);
}
} else {
if ($this->db_debug) {
log_message('error', 'Class CI_DB_oci10_result ' . "\t" . 'Method ' . __METHOD__ . ' ' . PHP_EOL . "\t\t" . 'Wrong parameter ' . $iColumn . '. Nb Max Columns : ' . oci_num_fields($id) . PHP_EOL . " Connexion data " . PHP_EOL . " username : " . $this->username . PHP_EOL . " hostname : " . $this->hostname . PHP_EOL . " database : " . $this->database . PHP_EOL . " dbdriver : " . $this->dbdriver . PHP_EOL . " dbprefix : " . $this->dbprefix . PHP_EOL . " port : " . $this->port);
return $this->display_error('db_wrong_parameter', $iColumn);
}
return false;
}
}
示例13: oracleMetadata
function oracleMetadata(&$db)
{
$id = $db->Query_ID;
$META = new stdClass();
#echo "SQL=".$db->LastSQL."<br>";
#echo "Columnas =".OCINumcols($id)."<br>";
$META->cols = array();
for ($ix = 1; $ix <= OCINumcols($id); $ix++) {
$col = oci_field_name($id, $ix);
$type = oci_field_type_raw($id, $ix);
$presicion = oci_field_precision($id, $ix);
$escala = oci_field_scale($id, $ix);
$standarType = MetaStandardType("Oracle", $type, $escala);
$META->colsbyname["{$col}"] = new stdClass();
$META->colsbyname["{$col}"]->{"type"} = $standarType;
$META->colsbyname["{$col}"]->{"precision"} = $presicion;
$META->colsbyname["{$col}"]->{"scale"} = $escala;
$META->colsbyname["{$col}"]->{"size"} = oci_field_size($id, $ix);
$META->colsbyname["{$col}"]->{"is_null"} = oci_field_is_null($id, $ix);
$META->colsbyname["{$col}"]->{"type_raw"} = $type;
$META->cols[$ix - 1] = new stdClass();
$META->cols[$ix - 1]->{"type"} = $standarType;
$META->cols[$ix - 1]->{"precision"} = $presicion;
$META->cols[$ix - 1]->{"scale"} = $escala;
$META->cols[$ix - 1]->{"size"} = oci_field_size($id, $ix);
$META->cols[$ix - 1]->{"is_null"} = oci_field_is_null($id, $ix);
$META->cols[$ix - 1]->{"type_raw"} = $type;
//if($db->Debug)
#echo"<b>[$col]</b>:"
#.$META->colsbyname["$col"]->type
#.' '.$META->colsbyname["$col"]->size
#.' Presicion='.$META->colsbyname["$col"]->precision
#.' Ecala='.$META->colsbyname["$col"]->scale
#.' '.$META->colsbyname["$col"]->is_null
#.' type='.$META->colsbyname["$col"]->type_raw
#.' '."<br>\n";
}
return $META;
}
示例14: getColumnMeta
public function getColumnMeta($column)
{
if ($column >= $this->columnCount()) {
return false;
}
$column++;
$result = array('native_type' => oci_field_type($this->_result, $column), 'name' => oci_field_name($this->_result, $column), 'len' => oci_field_size($this->_result, $column), 'precision' => oci_field_precision($this->_result, $column) . '.' . oci_field_scale($this->_result, $column), 'pdo_type' => EhrlichAndreas_Pdo_Abstract::PARAM_STR);
if (oci_field_is_null($this->_result, $column)) {
$result['flags'] = 'is_null';
}
return $result;
}