#plsql
#plsql
Вопрос:
Почему этот оператор обращения не будет работать в pl / sql? Я пытаюсь присвоить несколько значений за один раз. Есть ли более быстрый способ присвоить несколько значений на основе приведенного ниже? Спасибо.
DECLARE
x number := 5;
a CHAR;
b CHAR;
c CHAR;
BEGIN
CASE
WHEN x = 5 THEN a :='rx' AND b := 'rt' AND c :='ry';
WHEN ...
WHEN ...
END
END;
Комментарии:
1. Операторы разделяются точкой с запятой в PL / SQL, а не с
AND
помощью . Вы сделали это при объявлении переменных, что изменилось вTHEN
блоке?2. Также ваш
case
оператор должен заканчиваться наend case;
иchar
без размера по умолчаниюchar(1)
, который будет слишком мал для ваших значений. И стандартный тип данных короткой текстовой строкиvarchar2
— лучше не использоватьchar
никогда. (И ваш caps lock включен.)
Ответ №1:
Попробуйте это:
DECLARE
x NUMBER := 5;
a VARCHAR2(2);
b VARCHAR2(2);
c VARCHAR2(2);
BEGIN
IF(x = 5)
THEN
a :='rx';
b := 'rt';
c :='ry';
END IF;
END;
Вы должны использовать ключевое слово case внутри sql-запросов, но в этом сценарии, когда вы хотите задать переменные, вам нужно использовать оператор If Then .