Execute store procedure #35510
Replies: 1 comment
|
Superset does not support executing stored procedures directly for chart data in SQL Server without wrapping them in OPENQUERY or a similar construct. This is due to how Superset, SQLAlchemy, and the underlying database drivers handle query execution and result sets—Superset expects a single, tabular result set for charting, and direct EXEC calls or T-SQL constructs like DECLARE/SET are not supported in chart datasets or virtual datasets. There are no Superset-side settings or configurations to enable direct stored procedure execution for charts (reference). The common workarounds are: continue using OPENQUERY, create a SQL Server view that wraps your stored procedure logic, or use ETL to materialize the results into a table for charting. If you need to pass parameters from Superset filters, use Jinja templating with filter_values, but be aware that parameterizing stored procedure calls through OPENQUERY can be tricky and may require careful handling of filter defaults and types (reference). If you want more technical details or examples of these workarounds, let me know! To reply, just mention @dosu. Share context across your team and agents. Try Dosu. |
Uh oh!
There was an error while loading. Please reload this page.
In superset is there any way I can execute store procedure to get data to put on chart without wrapping it in openquery?
Because now I have to wrap it up to save it to the chart:
{% if filter_values('Nam')|length > 0 %}
{% set nam_filter = filter_values('Nam')[0] %}
{% else %}
{% set nam_filter = 2025 %}
{% endif %}
WITH DuLieu AS (
SELECT *
FROM OPENQUERY([Linked_HN_TEST],
'EXEC HN_TEST.dbo.DBD_OM_DoanhThuBanHang
@MaCongTy = NULL,
@nam = N''{{ nam_filter }}''
WITH RESULT SETS
(
(KH01 FLOAT, KH02 FLOAT, KH03 FLOAT, KH04 FLOAT, KH05 FLOAT, KH06 FLOAT,
KH07 FLOAT, KH08 FLOAT, KH09 FLOAT, KH10 FLOAT, KH11 FLOAT, KH12 FLOAT,
TT01 FLOAT, TT02 FLOAT, TT03 FLOAT, TT04 FLOAT, TT05 FLOAT, TT06 FLOAT,
TT07 FLOAT, TT08 FLOAT, TT09 FLOAT, TT10 FLOAT, TT11 FLOAT, TT12 FLOAT,
KTruoc01 FLOAT, KTruoc02 FLOAT, KTruoc03 FLOAT, KTruoc04 FLOAT, KTruoc05 FLOAT, KTruoc06 FLOAT,
KTruoc07 FLOAT, KTruoc08 FLOAT, KTruoc09 FLOAT, KTruoc10 FLOAT, KTruoc11 FLOAT, KTruoc12 FLOAT,
PTram01 FLOAT, PTram02 FLOAT, PTram03 FLOAT, PTram04 FLOAT, PTram05 FLOAT, PTram06 FLOAT,
PTram07 FLOAT, PTram08 FLOAT, PTram09 FLOAT, PTram10 FLOAT, PTram11 FLOAT, PTram12 FLOAT)
)'
)
)
SELECT 1 AS Thang, KH01 AS DT_KeHoach, TT01 AS DT_KyNay, KTruoc01 AS DT_KyTruoc, PTram01 AS KT_TH, {{ nam_filter }} AS Nam FROM DuLieu UNION ALL
SELECT 2, KH02, TT02, KTruoc02, PTram02, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 3, KH03, TT03, KTruoc03, PTram03, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 4, KH04, TT04, KTruoc04, PTram04, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 5, KH05, TT05, KTruoc05, PTram05, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 6, KH06, TT06, KTruoc06, PTram06, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 7, KH07, TT07, KTruoc07, PTram07, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 8, KH08, TT08, KTruoc08, PTram08, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 9, KH09, TT09, KTruoc09, PTram09, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 10, KH10, TT10, KTruoc10, PTram10, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 11, KH11, TT11, KTruoc11, PTram11, {{ nam_filter }} FROM DuLieu UNION ALL
SELECT 12, KH12, TT12, KTruoc12, PTram12, {{ nam_filter }} FROM DuLieu;
All reactions