Удалось найти гораздо лучшее решение проблемы, не пробираясь сквозь стол. Я думал, что опубликую решение здесь для любого, кто может столкнуться с подобной проблемой.
Требование для хранимой процедуры состояло в том, чтобы проходить по большой таблице по одной строке за раз, объединяя содержимое каждого столбца в строке в строку и назначая ее переменной. Каждые N строк этой переменной будут записаны в отдельную таблицу. Ранее я использовал курсор для этого, но разработчик в нашей команде обнаружил гораздо более быстрый способ, используя предложение WITH.
INSERT INTO <MY_SCHEMA>.<MY_TABLE_THAT_WILL_CONTAIN_THE_CONCATENATED_VALUES_OF_EVERY_N_ROWS>
WITH
CONCATENATE_ROWS AS (
SELECT RANK() OVER (ORDER BY <PRIMARY_KEY_COLUMN>) AS ROWID, <PRIMARY_KEY_COLUMN>, <COLUMN_1> || '' || <COLUMN_2> || '' || ... <COLUMN_N> AS ROW_DETAIL
FROM <MY_TABLE_THAT_I_AM_QUERYING>
ORDER BY <PRIMARY_KEY_COLUMN>
),
GROUPED_ROWS AS (
SELECT (((CONCATENATE_ROWS.ROWID-1)/ <number of rows I want to concatenate, e.g.: 10>)+1) AS GROUPID, CAST(LIST(CONCATENATE_ROWS.ROW_DETAIL, '' ORDER BY <PRIMARY_KEY_COLUMN>) AS VARCHAR(4000)) AS CONCAT_DETAILS
FROM CONCATENATE_ROWS
GROUP BY (((CONCAT_ORDERS.ROWID-1)/ <number of rows I want to concatenate, e.g.: 10>)+1)
)
SELECT <Whatever columns I want to insert into <MY_TABLE_THAT_WILL_CONTAIN_THE_CONCATENATED_VALUES_OF_EVERY_N_ROWS>>
FROM GROUPED_ROWS;
Нет, вы не можете сделать так, чтобы они отображались всегда, но вы можете заставить их временно мигать.
[myScrollView flashScrollIndicators];
Это индикаторы прокрутки, а не полосы прокрутки . Вы не можете использовать их для прокрутки.
Быстро 3 +
1) Таймер
var timerForShowScrollIndicator: Timer?
2) Методы
/// Show always scroll indicator in table view
func showScrollIndicatorsInContacts() {
UIView.animate(withDuration: 0.001) {
self.tableView.flashScrollIndicators()
}
}
/// Start timer for always show scroll indicator in table view
func startTimerForShowScrollIndicator() {
self.timerForShowScrollIndicator = Timer.scheduledTimer(timeInterval: 0.3, target: self, selector: #selector(self.showScrollIndicatorsInContacts), userInfo: nil, repeats: true)
}
/// Stop timer for always show scroll indicator in table view
func stopTimerForShowScrollIndicator() {
self.timerForShowScrollIndicator?.invalidate()
self.timerForShowScrollIndicator = nil
}
3) Использование
startTimerForShowScrollIndicator в viewDidAppear
stopTimerForShowScrollIndicator в viewDidDisappear
Насколько я знаю, это невозможно. Единственный вызов API, который управляет отображением индикатора прокрутки, - это showsVerticalScrollIndicator
, и он может только полностью отключить отображение индикатора.
Вы можете flashScrollIndicators
, когда появится представление, чтобы пользователь знал, где в режиме прокрутки они есть.