ВСТАВИТЬ - EXEC проблема.Пустой вывод из хранимой процедуры - PullRequest
0 голосов
/ 15 октября 2018

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

Итак, вот код:

Declare @result table
(
    row_id int,
    quarry nvarchar(400),
    interval nvarchar(100),
    vskr_plan decimal(30,1),
    vskr_fact decimal(30,1),
    vskr_diff decimal(30,1),
    ruda_plan decimal(30,1),
    ruda_fact decimal(30,1),
    ruda_diff decimal(30,1),
    gpr_plan decimal(30,1),
    gpr_fact decimal(30,1),
    gpr_diff decimal(30,1),
    gm_plan decimal(30,1),
    gm_fact decimal(30,1),
    gm_diff decimal(30,1)
)

INSERT INTO @result
    EXEC [report].[DISP_KPI_QUARRY] @datet = N'2018-10-11'

SELECT * 
FROM @result

У меня нет ошибок с этим кодом, но он возвращает пустую таблицу!

Однако, если я выполню:

EXEC [report].[DISP_KPI_QUARRY] @datet = N'2018-10-11'

Я вижу все данные.

В чем моя ошибка, ребята?

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете попытаться включить ваши столбцы в оператор INSERT в том же порядке, в каком они возвращаются из вашей хранимой процедуры.Когда вы вставляете результаты из хранимой процедуры, вы должны быть уверены, что число, тип данных и порядок столбцов, которые возвращает хранимая процедура, соответствуют определению таблицы @result.

DECLARE @result table
(
    row_id int,
    quarry nvarchar(400),
    interval nvarchar(100),
    vskr_plan decimal(30,1),
    vskr_fact decimal(30,1),
    vskr_diff decimal(30,1),
    ruda_plan decimal(30,1),
    ruda_fact decimal(30,1),
    ruda_diff decimal(30,1),
    gpr_plan decimal(30,1),
    gpr_fact decimal(30,1),
    gpr_diff decimal(30,1),
    gm_plan decimal(30,1),
    gm_fact decimal(30,1),
    gm_diff decimal(30,1)
)

INSERT INTO @result (row_id, quarry, interval, vskr_plan, vskr_fact, vskr_diff, ruda_plan, ruda_fact, ruda_diff, gpr_plan, gpr_fact, gpr_diff, gm_plan, gm_fact, gm_diff)
EXEC [report].[DISP_KPI_QUARRY] @datet = N'2018-10-11'

SELECT *
FROM @result
...