--刪除測試表
--drop table test;
--建立測試表
create table test (fcode varchar(10),fname varchar(20));
--刪除臨時表
--drop table temp;
--建立臨時表
create table temp(fkey varchar(10),fvalue varchar(100));
--刪除函式
--drop function fun_test;
--自定義函式中不能使用臨時表和游標
--建立函式:將多行相同的編號合併成一行,名稱用分隔符合併
create function fun_test(
para_split varchar(1) -- 分隔符
) returns table(fcode varchar(10),fname varchar(100))
language sql
modifies sql data --函式中呼叫儲存過程需要該配置
--reads sql data
begin atomic
--定義變數
declare num int;
declare key_ varchar(10); -- 比較的關鍵值
declare value_ varchar(100); -- 根據相同key的值通過分隔符合併
--初始化變數
set num = 0;
set key_ = '';
set value_ = '';
--判斷是否存在test表,如果不存在就建立該錶(測試用的表)
for tablename as select name from sysibm.systables where creator not in ( 'sysibm ', 'syscat ', 'sysstat ') and name = 'test'--表名要大些
doif(tablename.name != '') then
delete from test;
insert into test(fcode, fname) values('1001', 'a1'),('1001', 'b1'),('1001', 'c1'),('1002', 'a2'),('1002', 'b2'),('1003', 'a3');
end if;
end for;
--刪除臨時表的資料
for tempname as select name from sysibm.systables where creator not in ( 'sysibm ', 'syscat ', 'sysstat ') and lower(name) = 'temp' -- lower轉換為小寫
doif(tempname.name != '') then
delete from temp;
end if;
end for;
for test as select fcode, fname from test order by fcode --需要根據編號排序
doif num = 0 then
set key_ = test.fcode;
set value_ = test.fname;
set num = 1;
else --這裡不是 else if
if (key_ = test.fcode) then
set value_ = value_ || para_split || test.fname;
set num = num + 1;
else
insert into temp(fkey, fvalue) values(key_,value_);
set value_ = test.fname;
set key_ = test.fcode;
set num = num + 1;
end if;
end if;
end for;
if (num > 0) then
insert into temp(fkey, fvalue) values(key_, value_);
end if;
--可以呼叫儲存過程,不能返回儲存過程的返回值
--函式返回值
return select fkey, fvalue from temp;
end;
--呼叫函式
--select * from table(fun_test('-')) as t
zabbix 使用者自定義key
使用者自定義引數 userparameter 僅支援agent的方式,對於其他方式不支援。1 自定義key的語法 在 etc zabbix zabbix agentd.conf中配置引數,寫法如下 userparameter key command 1 2 3 key item key 具有唯一行,...
zabbix常用key和自定義key的講解
zabbix中常用到的幾個key 1 監控埠的 net.tcp.port 3306 usr local zabbix bin s192.168.8.120 knet.tcp.port 3306 返回1為192.168.8.120的埠3306存在,0為不存在 2 監控程序的 proc.num mysq...
zabbix常用key和自定義key的講解
zabbix中常用到的幾個key 1 監控埠的 net.tcp.port 3306 usr local zabbix bin s192.168.8.120 knet.tcp.port 3306 返回1為192.168.8.120的埠3306存在,0為不存在 2 監控程序的 proc.num mysq...