- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
-- Согласная ли буква (кроме 'Ц')
FUNCTION is_soglasn(letter IN CHAR
) RETURN BOOLEAN IS
BEGIN
IF letter IN ('Б', 'В', 'Г', 'Д', 'Ж', 'З', 'К', 'Л', 'М', 'Н',
'П', 'Р', 'С', 'Т', 'Ф', 'Х', 'Ч', 'Ш', 'Щ',
'б','в','г','д','ж','з','к','л','м','н',
'п','р','с','т','ф','х','ч','ш','щ')
THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END is_soglasn;
kcapgac 16.02.2012 11:15 # +1
Но почему нужно было дублировать массив для строчных и прописных вместо LOWER(letter) ... =\
TarasB 16.02.2012 11:53 # −3
оставить просто return letter in...
А ещё лучше просто завести константу soglans_set и вместо is_soglasn писать прямо letter in soglasn_set
wecanstoptrain 16.02.2012 12:07 # +1
Какой тогда синтаксис у оператора in будет?
TarasB 16.02.2012 14:52 # −1
Если его нет, а есть только неразделимая конструкция if ... in ... , то извините.
Если да, то думайте головой, прежде чем спорить.
Отвечаю на вопросы:
> дооо, и какого типа этот soglans_set?
Такого же, как и выражение справа от IN
> Какой тогда синтаксис у оператора in будет?
Такой же, какой и был.
wecanstoptrain 16.02.2012 15:01 # +1
в sql еще подзапрос разрешается справа (тоже в скобках)
другие варианты использования in в качестве оператора - не знаю (как с if, так и без него)
Множество можно устроить, но оно там - непришейкобылехвост:
проще тогда от in отказаться:
wecanstoptrain 16.02.2012 15:04 # 0
TarasB 16.02.2012 15:10 # 0
Тогда печально, извините.
wecanstoptrain 16.02.2012 15:12 # 0
http://docs.oracle.com/cd/B19306_01/server.102/b14200/conditions013.htm#i1050801
IN operator:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/fundamentals.htm#sthref502
TarasB 16.02.2012 15:19 # 0
wecanstoptrain 16.02.2012 15:30 # 0
вместо set подразумевалось ('a','b','c', ...)
Писец, у них даже текстовое определение конфликтует с графом:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/boolean_other_expression.gif
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/img_text/boolean_other_expression.htm
TarasB 16.02.2012 15:33 # 0
NIRVANA-RULEZ 16.02.2012 11:35 # +2
wecanstoptrain 16.02.2012 13:45 # +1
NIRVANA-RULEZ 16.02.2012 16:53 # 0
wecanstoptrain 16.02.2012 12:11 # +2
return regexp_like(lower(letter), '[^цуеыаоэяию]');
wecanstoptrain 16.02.2012 12:28 # +2
return lower(letter) between 'б' and 'щ' and regexp_like(lower(letter), '[^цеёийоу]');
Steve_Brown 16.02.2012 14:43 # +9
Lure Of Chaos 18.02.2012 22:26 # 0
guest8 09.04.2019 12:42 # −999