У меня небольшие проблемы с этим представлением sql.
CREATE OR REPLACE VIEW view_themed_booking AS
SELECT tb.*,
CASE
WHEN (tb.themed_party_size % 2) = 0 THEN
(tb.themed_party_size-2)/2
ELSE ((tb.themed_party_size-2)/2) + 0.5
END themed_tables
FROM themed_booking tb;
Может кто-нибудь помочь мне здесь?Я пытаюсь добавить столбец в конец представления, что результат с натуральным числом (S-2)/2
, где S
- это themed_party_size
.
Когда я говорю результат с натуральным числом, я имею в виду округление в большую сторонуответы, оканчивающиеся на .5, поэтому, если S=7
ответ будет 3
, а не 2.5
.
Ошибка, которую я получаю при попытке запустить приведенный выше код:
Error starting at line 1 in command:
CREATE OR REPLACE VIEW view_themed_booking AS
SELECT tb.*,
CASE WHEN (tb.themed_party_size % 2) = 0
THEN (tb.themed_party_size-2)/2
ELSE ((tb.themed_party_size-2)/2) + 0.5
END themed_tables
FROM themed_booking tb
Error at Command Line:3 Column:34
Error report:
SQL Error: ORA-00911: invalid character
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
*Action:
Если это имеет значение, я использую sqldeveloper, подключенный к серверу Oracle, чтобы я мог использовать PL / SQL.