что поместить в Oracle глобальную временную таблицу - PullRequest
0 голосов
/ 18 марта 2020

У меня есть oracle pro c, по которому я передаю данные для фильтрации записей. Передаваемые данные - параметр привлечение_идентификации, и этот выбор_презентации может быть от 10 до 20000 одновременно. Тип данных varchar недостаточен, поэтому руководство приняло решение go для глобальной временной таблицы. Администратор БД запросил сценарий для создания GTT, но проблема в том, что я не знаю, что мне следует поместить в GTT. Основываясь на моем профессионале c, я должен поместить всю таблицу в GTT или какой-то конкретный c столбец или я должен поместить в файлlection_id. Кроме того ,lection_id используется в других процессах, так что я могу создать несколько GTT? Я сейчас немного потерян, пожалуйста, помогите мне решить эту проблему. Помощь будет высоко оценена.

create or replace PROCEDURE County_election(
    election_id IN varchar2, //this data is too large so we creating GTT
    date_occured  IN Date,
    state IN varchar2,
    country varchar2
)

with election_id_list as(
parsing comma separated election_id  and selecting from dual
)

regular query
SELECT s.state, s.country, t.mayor, m.name, COUNT (DISTINCT s.seat) seat_won
FROM COUNTY s
    JOIN  Area t ON t.e_id = s.e_id
JOIN Memebers m on m.mem_id=t.mem_id and mem_id IN (sub query)
where s.election_id in (select  election_id from election_id_list ) //large data is used in where clause to filter the data

1 Ответ

1 голос
/ 18 марта 2020

Я бы посоветовал сохранить столбецlection_id в GTT и использовать его в соединении с основной таблицей.

CREATE GLOBAL TEMPORARY TABLE election_id_list (
   election_id  VARCHAR2(20)
)
ON COMMIT PRESERVE ROWS;

INSERT INTO election_id_list <parsing comma separated election_id  and selecting from dual>


SELECT s.state, s.country, t.mayor, m.name, COUNT (DISTINCT s.seat) seat_won
FROM COUNTY s
    JOIN  Area t ON t.e_id = s.e_id
JOIN Memebers m on m.mem_id=t.mem_id and mem_id IN (sub query)
JOIN election_id_list 
on s.election_id =election_id_list.election_id


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...