Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с процедурой, cursor update или что-то типа... 
:(
    Опции темы
NetShadow
Дата 17.4.2007, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.9.2006

Репутация: нет
Всего: нет



Код

select * from table1 t1
id       name  
11    abc
21    bcs
31    dba

select * from table 2 t2

ID    NAME    ID_T2
1    abc      null
2    bcs      null
3    dbf      null

собственно сабж такой, нужно написать процедуру, которая сравнивает столбец upper(t1.name) и столбец upper(t1.name) если они равны, то подставляет проставляет в t2.ID_T2 значение t1.id  smile 

PM MAIL ICQ   Вверх
DimW
Дата 18.4.2007, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



я так понимаю здесь опечатка?!

Цитата(NetShadow @  17.4.2007,  20:51 Найти цитируемый пост)
которая сравнивает столбец upper(t1.name) и столбец upper(t1.name) если они равны

наверное имелось ввиду t2.name.

Код

create table TABLE1
(
  NAME VARCHAR2(10),
  ID   NUMBER
)

/

create table TABLE2
(
  NAME  VARCHAR2(10),
  T1_ID NUMBER
)

и сам апдайте:

Код

update table2 t2
   set t2.t1_id = (select t1.id from table1 t1 where upper(t1.name) = upper(t2.name))

если нужно запихни этот апдейт в процедуру.



Это сообщение отредактировал(а) DimW - 18.4.2007, 08:17
PM MAIL ICQ   Вверх
batigoal
Дата 18.4.2007, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 2
Всего: 151



Только надо учитывать, что вложенный селект может несколько значений вернуть.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
DimW
Дата 19.4.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(batigoal @  18.4.2007,  16:57 Найти цитируемый пост)
Только надо учитывать, что вложенный селект может несколько значений вернуть.


может, но не должен, по крайней мере нужно подготовить данные в table1 так чтобы имена были уникальны, только в этом случии возможно сделать правельную привязку дочерней таблицы(table2) к справочнику(table1).

если идея вопроса не в этом, то rownum < 2




Это сообщение отредактировал(а) DimW - 19.4.2007, 13:52
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.