Где - регистр выдает ORA-00905: пропущено ключевое слово

Вы можете обернуть массив в структуру и затем вернуть экземпляр структуры. Я упоминаю об этом для полноты, это не то, что вы хотели бы сделать, так как это уродливо и есть лучшие альтернативы.

#include <stdio.h>

struct retval
{
    int a[10];
};

struct retval test()
{
    struct retval v = {{1, 5, 6}};
    return v;
}

int main()
{
    struct retval data = test();
    printf("%d %d\n", data.a[1], data.a[2]);
}
0
задан OldProgrammer 28 February 2019 в 22:46
поделиться

1 ответ

Вы не можете выборочно применять другие условия, используя выражение регистра. В этом случае я думаю, что он особенно жалуется, когда попадает в <, >= или between - все они не правы, а не то, что парсер ожидает увидеть там. (Он ожидает другого when или else или end для первых двух; и end для третьего.)

Вместо этого вы можете просто использовать логическую логику, что-то вроде:

[ 110]

или из вашего последнего параграфа, возможно, последняя строка может быть:

or (:P_AccountType = 'A' and GLCC.SEGMENT2 BETWEEN '00000' AND '99999')

Я не уверен, что второе условие для 'P' также нуждается в верхней границе; или действительно, если B нужен нижний предел. Сложнее сказать по строкам. Случай A может вообще не нуждаться в проверке диапазона. Хотя зависит от ваших данных.

0
ответ дан Alex Poole 28 February 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: