Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
SQL, PL/SQL, T-SQL: запросы, DML DDL операторы, пакеты, процедуры, функции, триггеры и последовательности.
  • Страница:
  • 1

ТЕМА: Как правильно написать update Для значения колонок

Как правильно написать update Для значения колонок 22 июль 2011 03:30 #2702

  • Rita
  • Rita аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 48
  • Спасибо получено: 0
Cкажите пожалуста.
Такая проблема...
как правильно написать update чтобы вкладывать туда значения коллонок из
переменной?????????????????

смысл приблизительно такой :

cursor v_st is blablabla...

...

l_month varchar2(10);

...

for v_counter in 1..3

LOOP

if v_counter := 1 then l_month := 'column_name1' end if;

if v_counter := 2 then l_month := 'column_name2' end if;

....

-- как впихнуть сюда значение l_month вместо имени колонки?????


UPDATE table1 set l_month = v_st.value

WHERE table1.bla_bla_id= v_st.bla_bla_id;

END LOOP;

....

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как правильно написать update Для значения колонок 22 июль 2011 03:35 #2703

  • Pond
  • Pond аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 47
  • Спасибо получено: 0
--DBMS_SQL
--EXECUTE IMMEDIATE

через CASE еще можно по-выражаться

UPDATE table1
set column_name1 = (case when v_counter=1 then ...),
column_name2 = (case when v_counter=2 then ...), ...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как правильно написать update Для значения колонок 22 июль 2011 03:35 #2704

может быть вопрос нечетко сформулирован?
update таблица_или_подзапр_или_коллекция
set имя_колонки=имя_переменной
where что-угодно ...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как правильно написать update Для значения колонок 22 июль 2011 03:36 #2705

  • Jack
  • Jack аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 45
  • Спасибо получено: 0
Все очень просто))
cursor v_st is blablabla...

...

l_month varchar2(10);

...

for v_counter in 1..3

LOOP

UPDATE table1 

   set column_name1 = decode(v_counter,1,v_st.value,column_name1),

        column_name2 = decode(v_counter,2,v_st.value,column_name2)

......



WHERE table1.bla_bla_id= v_st.bla_bla_id;

END LOOP;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как правильно написать update Для значения колонок 22 июль 2011 03:37 #2706

  • Rita
  • Rita аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 48
  • Спасибо получено: 0
получилось через

--DBMS_SQL
--EXECUTE IMMEDIATE

я действительно не корректно сформулировала вопрос
... дело в том что мне надо было вставлять меняющиеся column_name из переменой :)

Спасибо что поняли и помогли)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Rita.
  • Страница:
  • 1