powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование переменных в sql запросе
5 сообщений из 5, страница 1 из 1
Использование переменных в sql запросе
    #39857658
Gezmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Есть несколько простых sql запросов
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
--перенос данных во временную таблицу
insert into temptable (
                                        select 
                                        * 
                                        from table2 
                                        where id in (
                                                            select 
                                                            id 
                                                            from 
                                                            table1 
                                                            WHERE name in ('test2', 'test3')
                                                            )
                                    );



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
--удаление данных из исходной таблицы
delete from table2 where id in (   
                                                    select 
                                                    id 
                                                    from 
                                                    table1 
                                                    WHERE name in ('test2', 'test3')
                                                    );  



Код: plsql
1.
2.
3.
4.
--перенос данных из временной таблицы в нужную
INSERT into table3 SELECT * from temptable;

COMMIT;


Подскажите как можно использовать переменные в sql запросе?
Т.е. я хочу объявить переменную mas1 со значениями 'test2', 'test3' и переменные для таблиц.
Чтобы в итоге запрос принял вид :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
--перенос данных во временную таблицу
var_temptable = <какая-то таблица> --просто пример, не знаю как описать
var_table1 = <какая-то таблица>--просто пример, не знаю как описать
var var_mas = <массив значений>--просто пример, не знаю как описать
insert into var_temptable (
                                        select 
                                        * 
                                        from var_table2 
                                        where id in (
                                                            select 
                                                            id 
                                                            from 
                                                            var_table1 
                                                            WHERE name in (var_mas)
                                                            )
                                    );
...
Рейтинг: 0 / 0
Использование переменных в sql запросе
    #39857660
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Использование переменных в sql запросе
    #39857670
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно засунуть в коллекцию 'test2', 'test3'
и написать
Код: plsql
1.
2.
3.
4.
5.
6.
7.
                                        select  * 
                                        from var_table2 
                                        where id in (
                                                         select id 
                                                         from var_table1 
                                                         WHERE name in (select value(t) from table(test_values) t)
                                                            )
...
Рейтинг: 0 / 0
Использование переменных в sql запросе
    #39857680
Gezmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за советы.
Вы навели меня на мысли, надеюсь правильные.
Вопрос с переменными для таблиц и одиночных переменных, решил так:
Код: plsql
1.
2.
3.
define val1 = 'test3'
define fromTable = 'table1'
select * from &&fromTable where name in '&val1';


Для массива переменных, решил использовать таблицу и делать подзапрос.
...
Рейтинг: 0 / 0
Использование переменных в sql запросе
    #39857682
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главный вопрос "А нахрена козе временная таблица?" никто так и не задал.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование переменных в sql запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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