• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/db/oracleconnection.php
  • Класс: BitrixMainDBOracleConnection
  • Вызов: OracleConnection::getIndexName
public function getIndexName($tableName, array $columns, $strict = false)
{
	if (empty($columns))
	{
		return null;
	}

	$isFunc = false;
	$indexes = array();

	$result = $this->query("SELECT * FROM USER_IND_COLUMNS WHERE TABLE_NAME = upper('".$this->getSqlHelper()->forSql($tableName)."')");
	while ($ar = $result->fetch())
	{
		$indexes[$ar["INDEX_NAME"]][$ar["COLUMN_POSITION"] - 1] = $ar["COLUMN_NAME"];
		if (strncmp($ar["COLUMN_NAME"], "SYS_NC", 6) === 0)
		{
			$isFunc = true;
		}
	}

	if ($isFunc)
	{
		$result = $this->query("SELECT * FROM USER_IND_EXPRESSIONS WHERE TABLE_NAME = upper('".$this->getSqlHelper()->forSql($tableName)."')");
		while ($ar = $result->fetch())
		{
			$indexes[$ar["INDEX_NAME"]][$ar["COLUMN_POSITION"] - 1] = $ar["COLUMN_EXPRESSION"];
		}
	}

	return static::findIndex($indexes, $columns, $strict);
}