• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/db/oraclesqlhelper.php
  • Класс: BitrixMainDBOracleSqlHelper
  • Вызов: OracleSqlHelper::getFieldByColumnType
public function getFieldByColumnType($name, $type, array $parameters = null)
{
	switch ($type)
	{
	case "DATE":
		return new ORMFieldsDatetimeField($name);

	case "NCLOB":
	case "CLOB":
	case "BLOB":
		return new ORMFieldsTextField($name);

	case "FLOAT":
	case "BINARY_FLOAT":
	case "BINARY_DOUBLE":
		return new ORMFieldsFloatField($name);

	case "NUMBER":
		if ($parameters["precision"] == 0 && $parameters["scale"] == -127)
		{
			//NUMBER
			return new ORMFieldsFloatField($name);
		}
		if (intval($parameters["scale"]) <= 0)
		{
			//NUMBER(18)
			//NUMBER(18,-2)
			return new ORMFieldsIntegerField($name);
		}
		//NUMBER(*,2)
		return new ORMFieldsFloatField($name, array("scale" => $parameters["scale"]));
	}
	//LONG
	//VARCHAR2(size [BYTE | CHAR])
	//NVARCHAR2(size)
	//TIMESTAMP [(fractional_seconds_precision)]
	//TIMESTAMP [(fractional_seconds)] WITH TIME ZONE
	//TIMESTAMP [(fractional_seconds)] WITH LOCAL TIME ZONE
	//INTERVAL YEAR [(year_precision)] TO MONTH
	//INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds)]
	//RAW(size)
	//LONG RAW
	//ROWID
	//UROWID [(size)]
	//CHAR [(size [BYTE | CHAR])]
	//NCHAR[(size)]
	//BFILE
	return new ORMFieldsStringField($name, array("size" => $parameters["size"]));
}