Вы завернули свой SQL в блок начала / конца, что делает его оператором PL-SQL. В PL-SQL Oracle ожидает места для размещения набора результатов из SQL. Это источник вашей ошибки ORA-06550. Вам нужно, чтобы объявленная переменная PL-SQL содержала результат запроса через INTO.
Но выражение SELECT все еще немного странно. На ваш взгляд, нет смысла иметь настоящую таблицу tableOfBeans в предложении FROM.
Вы хотели что-то подобное?
declare var_type VARCHAR2(10);
begin
select case tableOfBeans.beanType
when 'B' then 'Beans'
when 'L' then 'Legumes'
end
into var_type
from tableOfBeans;
end;
На самом деле, это также приведет к ошибке, если у вас есть более одной строки в tableOfBeans. Возможно, вы хотели получить элементы из tableOfBeans, где tableOfBeans.beanType = var_type. В этом случае вам все еще нужен способ сохранить набор результатов. Извините, если я не понимаю, что вы пытаетесь сделать. Немного подробнее поможет.