Chèn tập hợp kết quả thủ tục đã lưu trữ vào bảng Tạm thời và bảng tạm thời truy vấn
Tôi có proc được lưu trữ sau đây đang cố gắng:
- Thực thi thủ tục lưu trữ hệ thống (sp_monitorconfig) và đặt tập hợp kết quả vào bảng tạm thời.
- CHỌN TỪ bảng tạm thời này và thêm 2 cột tùy chỉnh (SOURCESERVER & CollectionTime)
- Tập hợp kết quả cuối cùng này sẽ được nhập vào Logstash thông qua jdbc job.
Tôi hiện đang sử dụng SAP ASE 16 (sybase) và đang gặp lỗi cú pháp không chính xác ở từ khóa 'execute' . Tôi không chắc liệu mình có phải đặt tiền tố proc được lưu trữ hay không, nhưng hiện tại tôi rất bối rối và mọi sự trợ giúp đều được đánh giá cao.
USE db
GO
CREATE PROCEDURE sp_active_con_ratio.sql AS
DECLARE @servername varchar(32) DECLARE @collecttime DATETIME DECLARE @procparam varchar(32)
select
@servername = @@servername
select
@collecttime = getdate()
select
@procparam = 'number of user connections' CREATE TABLE #TempUserConnections
(
TempName varchar(35),
FreeConnections int,
ActiveConnections int,
PercentActive char(6),
MaxUsed int,
Reuse_cnt int,
Instance_Name varchar(30) NULL
)
INSERT INTO
#TempUserConnections (TempName, FreeConnections, ActiveConnections, PercentActive, MaxUsed, Reuse_cnt, Instance_Name)
exec sp_monitorconfig @procparam **ERROR HERE**
SELECT
@servername AS 'SOURCESERVER',
FreeConnections,
ActiveConnections,
PercentActive,
MaxUsed,
@collecttime AS 'CollectionTime'
FROM
#TempUserConnections
DROP TABLE #TempUserConnections
RETURN
GO
Cảm ơn!
Trả lời
markp-fuso
Tôi đã quên rằng sp_monitorconfig
có một tham số đầu vào tùy chọn ( @result_tbl_name
) cho phép toán tử chỉ định một bảng mà kết quả sẽ được chèn vào.
Từ tài liệu về sp_monitorconfig , Ví dụ # 8 ...
Đầu tiên, tạo bảng để chứa các kết quả; trong khi tên bảng có thể thay đổi, bạn sẽ muốn giữ tên cột / kiểu dữ liệu như đã xác định:
create table sample_table
(Name varchar(35),
Config_val int,
System_val int,
Total_val int,
Num_free int,
Num_active int,
Pct_act char(6),
Max_Used int,
Reuse_cnt int,
Date varchar(30),
Instance_Name varchar(35))
Để nắm bắt một số chỉ số:
exec sp_monitorconfig "locks", sample_table
exec sp_monitorconfig "number of alarms", sample_table
Số liệu hiển thị:
-- select * from sample_table
exec sp_autoformat sample_data
go
sp_autoformat sample_table
2> go
Name Config_val System_val Total_val Num_free Num_active Pct_act Max_Used Reuse_cnt Date Instance_Name
---------------- ---------- ---------- --------- -------- ---------- ------- -------- --------- ------------------- -------------
number of locks 10000 942 10000 9717 283 2.83 308 0 Aug 16 2020 12:26PM
number of alarms 400 0 400 386 14 3.50 14 0 Aug 16 2020 12:26PM