используйте REGEXP_COUNT
select * from department where REGEXP_COUNT(loc,'o',1,'i') = 1; --'i' for case-insensitive
или LENGTH
(вместе с lower()/upper()
сверху, чтобы сделать его нечувствительным к регистру)
select * from department where length(loc) - length(replace(loc,'O')) = 1
Ошибка, которую вы показываете, не означает, что проблема связана с переменной областью, скорее она встречается на основании того, что вычисления не могут быть выполнены для не похожих типов.
Трудно сказать, не видя вашего полного кода, но, возможно, следующее предложит возможное альтернативное решение:
#!/usr/bin/env python
import datetime
def start():
start_time = datetime.datetime.now()
return start_time
def stop():
stop_time = datetime.datetime.now()
return stop_time
def delta(start,stop):
delta_time = stop - start
print(delta_time)
start=start()
stop=stop()
delta(start,stop)
Это решение перемещает две сгенерированные временные метки (start_time
и stop_time
) в одна единственная функция (delta
) в качестве аргументов, так что когда вычисляется delta_time
, она выполняется для переменных подобного типа в рамках своей функции.