обновить с помощью выполнить немедленно в оракуле - PullRequest
0 голосов
/ 17 ноября 2018
DECLARE
v_var1 := varchar2(100);
v_var2 := varchar2(100);
v_var3 := varchar2(100);
v_var4 := varchar2(100);

BEGIN

v_var1 := 'col';
v_var2 := 'val1';
v_var3 := 'val2';
v_var4 := 'vall3';

EXECUTE IMMEDIATE 'UPDATE TABLENAME SET '|| v_var1 ||' = :v_var2  WHERE ID =  :v_var3 AND COUNTRY =  :v_var4'
USING v_var2,v_var3,v_var4;

END;

Можно ли настроить динамическое обновление столбца? Выдает ошибку

ORA-06550: строка 2, столбец 8: PLS-00103: обнаружен символ "=" при ожидании одного из следующих

. Проверены другие сообщения, но удалось найти только, как передать имя таблицы динамически. Что-то не так в этом сценарии?

1 Ответ

0 голосов
/ 17 ноября 2018

Ваш код должен быть таким:

DECLARE
v_var1 varchar2(100);
v_var2 varchar2(100);
v_var3 varchar2(100);
v_var4 varchar2(100);

BEGIN

v_var1 := 'col';
v_var2 := 'val1';
v_var3 := 'val2';
v_var4 := 'vall3';
...

или

DECLARE
v_var1 varchar2(100) := 'col';
v_var2 varchar2(100) := 'val1';
v_var3 varchar2(100) := 'val2';
v_var4 varchar2(100) := 'vall3';

BEGIN

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...