powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чем можно заменить временную таблицу?
15 сообщений из 15, страница 1 из 1
Чем можно заменить временную таблицу?
    #40135830
PSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть несколько десятков тысяч ID (в ЭКСЕЛЕ ) мне нужно по ним выгребсти данные и таблиц.
Логично было бы загрузить эти ID в таблицу и сделать от нее left join, но на продуктивной базе права только на чтение , нет возможности создавать таблицы.
IN тоже не подходит так как в случае если в таблицах по id ничего нет то строка с этим ID в выгрузке быть должна ....

Есть более элегантное решение чем dual+ union ALL ?

Код: sql
1.
2.
3.
4.
5.
6.
7.
with t as (
select 1 as id from dual
union all
select 2 as id from dual
union all
select 4 as id from dual
) 
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135831
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XML
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135873
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PSD,

если токо ид table компактние
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SQL> ed
Wrote file afiedt.buf

  1  select * from table (sys.odcinumberlist(1,2,3))
  2  union all
  3* select * from table (sys.odcinumberlist(4,5,6))
SQL> /

COLUMN_VALUE
------------
           1
           2
           3
           4
           5
           6

6 rows selected.



.....
stax
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135874
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PSDЕсть более элегантное решение чем dual+ union ALL ?

Вариант а: выгребать данные по одной записи, в цикле.
Вариант б: выгребать все данные, делать джоин в ёкселе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135875
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PSD,

я сам этим ни разу не пользовался, но знаю что есть: Private Temporary Table

но придётся как то (инсертами, например) загрузить данные из Excel в той же сессии подключения к БД, что и запросы будете писать
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135904
PSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён, моя версия не понимает привата , а глобал ошибки не выдает ... просто висит до бесконечности.


Код: sql
1.
2.
3.
4.
5.
CREATE PRIVATE TEMPORARY TABLE ora$ptt_my_temp_table (
  id           NUMBER,
  description  VARCHAR2(20)
)
ON COMMIT DROP DEFINITION;



SQL Error [905] [42000]: ORA-00905: отсутствует ключевое слово
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135906
PSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist, а можно по подробней? XPath запросами сталкивался но не понял как там XML использовать как таблицу и тем более сделать от нее left join.
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135920
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PSD
... но на продуктивной базе права только на чтение , нет возможности создавать таблицы


а в схеме пользователя?
Может, попросить админа чтобы разрешил создавать таблички Вашему юзеру в своей схеме?
Уверен, он пойдёт на такое. Ограничит, возможно, квотой на сколько-то десятков мегабайт и ладушки
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135983
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
with as select можно сгенерировать (в том же Excel).
А для уменьшения размера sql можно генерировать списки через запятую и далее разбить иерархическим запросом.
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40135985
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён
PSD
... но на продуктивной базе права только на чтение , нет возможности создавать таблицы


а в схеме пользователя?
Может, попросить админа чтобы разрешил создавать таблички Вашему юзеру в своей схеме?
Уверен, он пойдёт на такое. Ограничит, возможно, квотой на сколько-то десятков мегабайт и ладушки

+1
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40136002
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как вообще последнее решение (если админ невменяемый):

  • сделать в тестовой базе https://betacode.net/10585/oracle-database-link-synonym] DATABASE LINK , смотрящий в продуктовую базу
  • далее залить из Excel в тестовую
  • и писать запросы к таблицам сразу из двух баз
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40136074
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
PSD,

самый простой вариант это
PaulWist
XML
Просто взять экселевский файл сохранить как xml и передать его как бинд переменную в
Код: plsql
1.
select * from xmltable(... passing xmltype(:xml) ...)

Всякие PL/SQL Developer позволяют выбрать файл для передачи clob биндов
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40136222
PSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён, Анмин не против ИБ против, запрещено внесение каких либо изменений в продуктивную среду вне релизов.
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40136224
PSD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
Кроик Семён
пропущено...


а в схеме пользователя?
Может, попросить админа чтобы разрешил создавать таблички Вашему юзеру в своей схеме?
Уверен, он пойдёт на такое. Ограничит, возможно, квотой на сколько-то десятков мегабайт и ладушки

+1



Спасибо!
Точно, временные таблицы создавать не могу, а в схеме пользователя без проблем.
...
Рейтинг: 0 / 0
Чем можно заменить временную таблицу?
    #40136311
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PSD
Точно, временные таблицы создавать не могу, а в схеме пользователя без проблем.

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


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