В цикле for
нет тела цикла:
elif option == 2:
print "please enter a number"
for x in range(x, 1, 1):
elif option == 0:
На самом деле весь блок if option == 1:
имеет проблемы с отступом. elif option == 2:
должен быть на том же уровне, что и оператор if
.
Я предпочитаю использовать простые строковые функции, такие как INSTR, SUBSTR и REPLACE, но в этом случае он гораздо читабельнее с помощью простого REGEXP-REPLACE:
with testtab as(
select '[...]#Product offer ID=505618817#Promotion effective date=20180403#Promotion expiration date=20180703#Promotion indicator=Y
#[...]#Waive ind= #' as text from dual)
select regexp_replace(text, 'Promotion expiration date=\d*', 'Promotion expiration date=' || to_char(sysdate, 'YYYYMMDD') ) from testtab;
\ d * - от 0 до бесконечности таких как ''
, 345345
или 4356456345634563546
. Он совпадает с #
. Это означает, что он заменяет Promotion expiration date=20180606
, а также Promotion expiration date=345665756567