Что такое эквивалент SQL Server для EXECUTE IMMEDIATE INTO в Oracle

Что такое эквивалент SQL Server для EXECUTE IMMEDIATE INTO в Oracle?

Например.

DECLARE QRY varchar(100);

val int;

BEGIN

QRY:='select count(*) from production.product';

**EXECUTE IMMEDIATE** QRY **into** val;

dbms_output.put_line(val);

END;

/

Мне нужен способ, с помощью которого я могу сохранить значение общего количества строк, возвращаемое из оператора select.

Sangram_2020 10.04.2019 21:25

Моя цель - сохранить значение, возвращаемое динамическим запросом, в заданную переменную. Я только что дал, например. для вашего быстрого понимания. Пожалуйста помоги мне с этим.

Sangram_2020 10.04.2019 21:43

Скажем, вместо тотала нет. строк я хочу сохранить значение SUM данного столбца в переменной. Тогда каким должен быть мой код. Просто замените запрос, например, QRY:=выберите сумму (количество) из production.product

Sangram_2020 10.04.2019 21:44
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
5 454
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Эквивалентом T-SQL для EXECUTE IMMEDIATE является Динамический SQL.

DECLARE @intCount int
EXECUTE sp_executesql N'select @intCount=count(*) from product', N'@intCount int output', @intCount output;
Print(@intCount)

В качестве альтернативы вы можете использовать

DECLARE @intCount2 int
SELECT @intCount2 = count(*) from product

Вы не сохраняете значение общего количества возвращенных строк. Это моя цель и цель EXECUTE IMMEDIATE INTO

Sangram_2020 10.04.2019 21:23

Мне нужен способ, с помощью которого я могу сохранить значение общего количества строк, возвращаемое из оператора select.

Sangram_2020 10.04.2019 21:25

Вы не выполняете его динамически. Я хочу выполнить его динамически и сохранить его значение в переменной. Пожалуйста, выберите другой вариант, например сумму данного столбца в таблице, и сохраните его в переменной.

Sangram_2020 10.04.2019 22:10
Ответ принят как подходящий

Вы не можете установить скалярную переменную для результатов динамического запроса, но вы можете вставить результаты в табличную переменную. Это работает.

DECLARE @tbl TABLE (RowCnt INT NULL);

DECLARE
   @QRY varchar(100);

BEGIN

  SET @QRY = 'select <Aggregate Function> from tableName'; --Builds the dynamic query

  INSERT @tbl
    (
      RowCnt
    )
  EXECUTE(@QRY); --Executes the query

  SELECT 
    * 
  FROM @tbl;

END;

Спасибо, сэр. Вы очень полезны. Все работает, и я проверил свой ответ

Sangram_2020 10.04.2019 22:04

Превосходно! Я рад, что помог.

Eric Brandt 10.04.2019 22:04

Другие вопросы по теме