@teodolit

Можно ли получить данные из временной таблице в несколько запросов?

Добрый день. Пишу сервис, который отправляет запрос к Таблице, и он должен получить данные, чтобы далее с ними работать. Пример запроса:
$sql = <<<SQL
CREATE GLOBAL TEMPORARY TABLE SADMIN.DUBLES (
RESULT varchar2(200),
GUID DATE
)
    ON COMMIT DELETE ROWS
SQL;
    $this->module->db_crm->createCommand($sql)->execute();

$sql = <<<SQL
DECLARE
  RESULT varchar2(200) ;
BEGIN
-- всякая логика
  INSERT INTO SADMIN.DUBLES (RESULT, GUID) VALUES (RESULT, CURRENT_DATE);
END;
SQL;
$this->module->db_crm->createCommand($sql)->execute();

Здесь мне нужно получить данные, которые были записаны в колнку RESULT.
Я делаю
$sql = <<<SQL
SELECT * FROM SADMIN.DUBLES 
SQL;
$data2 = $this->module->db_crm->createCommand($sql)->queryAll();

Но данные не получаю. Вроде понял, что это из за того, что это запрос уже считается другой транзакцией, поэтому данных я не вижу.
При попытке добавить селект в первый запрос, после end, получаю ошибку ORA-06550 Encountered the symbol "SELECT". Попытка добавить "/" дает тоже самое, ругается уже на этот символ.

Пока зашел в тупик, вообще нет идей, как заставить код работать. Ну кроме создания "нормальной" таблицы, но этот вариант мне пока не подходит.
Сам с ораклом и sql шапочно знаком, просьбе сильно не пинать)
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
Но данные не получаю. Вроде понял, что это из за того, что это запрос уже считается другой транзакцией, поэтому данных я не вижу.

Ну так делайте это в одной транзакции. Явно объявите транзакцию или как-то иначе отключите автокоммит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы