powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скрипт добавления данных в таблицу
8 сообщений из 8, страница 1 из 1
Скрипт добавления данных в таблицу
    #39961903
Фотография wsnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется
Таблица tabA (id, name)
Таблица tabB (id, name)
Таблица tabC (id_tabA, id_tabB)

Как лучше организовать скриптом заполнение tabC при условии что id_tabA и id_tabB не известны заранее, известны только поля name таблиц, то есть заполнить tabC. То есть:
поле id_tabA соответствует записи из tabA, у которой tabA.name = 'A01',
поле id_tabB соответствует записи из tabB, у которой tabB.name='A02'.
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961907
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsnet,

Обычный INSERT

Ну и для информации

Студентам, желающим помощи
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?

Если хотите, чтобы Вам помогли, задайте вопрос правильно:

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):


Студентам, желающим помощи
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?

Если хотите, чтобы Вам помогли, задайте вопрос правильно:

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):

Код: plsql
1.
2.
3.
4.
5.
6.
with tbl(col1,col2,col3) as (
select 1,'name1',to_date('11.02.1921','DD.MM.YYYY') from dual union all
select 2,'name2',to_date('11.02.1922','DD.MM.YYYY') from dual union all
select 2,'name2',to_date('11.02.1922','DD.MM.YYYY') from dual
)
select col2 from tbl...



2) Покажите что сделали, и что получили (не в пересказе)


3) Старайтесь не использовать screenshot, научитесь копировать и оформлять текст
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961912
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используя join таблиц, напишите select который возвращает нужный набор данных, и вставляйте

Вот тестовые данные, тренируйтесь:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with tabA( id , name ) as (
select level, 'name'||to_char(level,'FM9') from dual connect by level < 10
)
, tabB ( id, name ) as (
select level,'name'||to_char(10-level,'FM9') from dual connect by level < 10
)
select taba.id as id_tabA,tabb.id as id_tabB from taba,tabb
where ...
/



Тренироваться можно здесь:
LiveSQL
Требуется регистрация на oracle.com
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961915
Фотография wsnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin, хотелось бы получить в tblC значение строки (1,1):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
with tblA (id,name) as (
select 1,'name1'  from dual union all
select 2,'name2' from dual 
)

select * from tblA;

with tblB (id,name) as (
select 1,'name1'  from dual union all
select 2,'name2' from dual
)

select * from tblB;

with tblC (idA,idB) as (
select 1, 1  from dual union all
)

select * from tblC;

-- здесь ошибка.
insert into tblC values (idA, idB)
values ((select id from tblA where name = 'name1'), (select id from tblB where name = 'name1'))
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961917
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsnet,

Не надо выдумывать синтаксис

Еще раз, пишите SELECT с join двух таблиц с нужными данными
Проверьте что подготовили данные корректно, далее
В ссылке документации ваш случай синтаксиса INSERT ... SELECT
там примеры есть "Inserting Values with a Subquery: Example"
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961918
Фотография wsnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsnet
Vadim Lejnin, хотелось бы получить в tblC значение строки (1,1):
Код: plsql
1.
2.
insert into tblC (idA, idB)
select tblA.rid, tblB.rid from tblA, tblB where tblA.name = 'name1' and tblB.name = 'name1' 



Таким образом?
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961924
Фотография wsnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или лучше через вложенный запрос?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
insert into tblC
  (idA, idB)
  select t1.idA,
         t2.idB
    from (select tblA.rid as idA
            from tblA
           where tblA.name = 'name1') t1,
         (select tblB.rid as idB
            from tblB
           where tblB.name = 'name1') t2
   where rownum = 1
...
Рейтинг: 0 / 0
Скрипт добавления данных в таблицу
    #39961940
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsnet,

Тебе пока не надо думать о том, как лучше. Тебе надо правильно сделать. Читай синтаксис, определяйся, что нужно на выходе и пытайся написать запрос.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скрипт добавления данных в таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]