linux操作
1 查询当前文件下的文件目录的大小
du -h --max-depth=1
2 服务器之间传输文件
scp -r xxx 用户名@ip:/user/home
输完之后输入密码就能传
dm数据库
1 查询当前模式的表中的内容的大小 (达梦数据库)
--查看表结构大小
select * from (
SELECT T2.NAME AS OWNER,T1.NAME AS TABLE_NAME,
TABLE_USED_PAGES( T2.NAME , T1.NAME )*(PAGE/1024) AS "TAB_SIZE(KB)"
FROM SYSOBJECTS T1,SYSOBJECTS T2
WHERE T1.SUBTYPE$='UTAB' AND T2.TYPE$='SCH' AND T1.SCHID=T2.ID
AND T2.NAME
NOT IN('SYS','SYSJOB','SYSREP') AND T1.NAME
NOT LIKE 'REF%' AND T1.NAME
NOT LIKE '#%'
and T1.NAME not like '%$%' order by 3 desc
) where owner='模式名'
2存储过程 (这个目前还没参透,太负责的也不会 哈哈 )
repair/yearRepairPlan/yearplanrepair1.raq
CREATE OR REPLACE PROCEDURE "RUNMODE"."P_COUNT_STOPREPEAT_220"
aS
v_sql varchar;--SQL变量
v_cusor cursor; --不同设备游标
v_workunit varchar:=null;
v_stopequip varchar:=null;
v_workunit_bak varchar:=null;
v_stopequip_bak varchar:=null;
v_dydj varchar(20):='220kV';
v_areano varchar(15);
v_id varchar;
v_min_beg_time varchar(20);
v_max_end_time varchar(20);
v_ids varchar;
v_p_id varchar;--重复停役包id
idx int;
len int;
BEGIN
--第一步:查询日计划重复停役中间表未计算的记录
/**存在站名相同的情况,但不同地调可以保同一个设备,故使用区域编码区分不准确,220kV的id相同,NAME有线路的则特殊处理*/
v_sql:='select distinct stopequip,replace(stopequip_bak,''线'') as stopequip_bak '|| --,workunit_bak
' from RUNMODE.T_DAYPLAN_STOPREPEAT_MID where voltage_level=''220kV'' and isread=0 '||
' ';--and rownum<5 and stopequip=''10_60010371'' and stopequip in (''jz5924'',''2dcsb167'')
open v_cusor for v_sql;
loop
fetch v_cusor into v_stopequip,v_stopequip_bak;--,v_workunit_bak
Exit
When v_cusor %Notfound;
--第二步:循环每一个设备
v_sql:='select RUNMODE.F_CONNECT_STOPREPEAT_220('''||v_stopequip||''','''||v_stopequip_bak||''') from dual';
execute immediate v_sql into v_ids;
-- print 'v_ids='||v_ids;
len=MONISTER.f_CountOneWordOnOtherWord('#',v_ids)+1;
idx:=0;
while idx<len loop --循环同一设备的不同链接分组,如a_1@a_2#a_3-->[a_1@a_2,a_3]
print '----------start---------';
if len=1 or idx=len-1 then --只有一组记录或最后一组
v_id:=v_ids;
else
v_id:=substring(v_ids,0,instr(v_ids,'#'));
v_ids:=replace(v_ids,v_id);
-- print '124v_ids='||v_ids;
end if;
-- print 'len='||len;
-- print 'idx='||idx;
v_id:=''''||replace(replace(v_id,'#'),'@',''',''')||'''';
-- print 'v_id='||v_id;
--找出组内停役最小时间和复役最大时间、变电站和设备中文名称
v_sql:='select min(beg_time),max(end_time) from ('||
' select workunit,stopequip,workunit_bak,stopequip_bak,voltage_level,beg_time,end_time '||
' from RUNMODE.T_DAYPLAN_STOPREPEAT_MID where isread=0 and ''a_''||id in('||v_id||')'||
' and stopequip='''||v_stopequip||''' and replace(stopequip_bak,''线'')='''||v_stopequip_bak||'''' ||
' union select workunit,stopequip,workunit_bak,stopequip_bak,voltage_level,min_beg_time,max_end_time '||
' from RUNMODE.T_DAYPLAN_STOPREPEAT where ''b_''||id in('||v_id||')'||
' and stopequip='''||v_stopequip||''' and replace(stopequip_bak,''线'')='''||v_stopequip_bak||''' '
') ';
--' and workunit_bak='''||v_workunit_bak||''' ';
execute immediate v_sql into v_min_beg_time,v_max_end_time;
-- print 'v_sql='||v_sql;
--若重复停役记录中已有,则删除原记录重新插入最新的
-- print 'v_id='||v_id;
if instr(v_id,'b_')>0 then
--若重复停役记录中存在两个及以上的与心得记录链接上了,则只保留一个,其余的删除
v_sql:='delete RUNMODE.T_DAYPLAN_STOPREPEAT where ''b_''||id in('||v_id||') '||
' and rownum<MONISTER.f_CountOneWordOnOtherWord(''b_'','''||replace(v_id,'''')||''')';
execute immediate v_sql;
commit;
--若后续记录与现有重复停役链接上,则更新停复役时间范围
v_sql:='update RUNMODE.T_DAYPLAN_STOPREPEAT '||
' set min_beg_time='''||v_min_beg_time||''',max_end_time='''||v_max_end_time||''''||
' ,last_update_time=sysdate where ''b_''||id in('||v_id||')';
execute immediate v_sql;
commit;
v_sql:='select id from RUNMODE.T_DAYPLAN_STOPREPEAT where ''b_''||id in('||v_id||')';
execute immediate v_sql into v_p_id;
else
--重复停役表主键,与中间表的p_id相关联
v_p_id:=runmode.t_dayplan_stoprepeat_seq.nextval;
--插入重复停役表记录
insert into RUNMODE.T_DAYPLAN_STOPREPEAT (id,workunit,stopequip,voltage_level,workunit_bak,stopequip_bak,
min_beg_time,max_end_time,last_update_time)
values(v_p_id,v_workunit,v_stopequip,v_dydj,v_workunit_bak,v_stopequip_bak,v_min_beg_time,v_max_end_time,sysdate);
commit;
end if ;
--更新中间表记录为已读且关联重复停役表的包id
v_sql:='update RUNMODE.T_DAYPLAN_STOPREPEAT_MID set isread=1 ,p_id=''P_'||v_p_id||''''||
' where ''a_''||id in ('||v_id||')' ;
--print '更新啦!!=='||v_sql;
execute immediate v_sql;
commit;
--7-22重复停役表中多个组合为一个时,更新中间表中原关联P_ID
v_sql:='update RUNMODE.T_DAYPLAN_STOPREPEAT_MID set isread=1 ,p_id=''P_'||v_p_id||''''||
' where p_id in ('||replace(v_id,'b_','P_')||')' ;
-- print '更新啦22!!=='||v_sql;
execute immediate v_sql;
commit;
idx:=idx+1;
-- print 'v_p_id='||v_p_id;
-- print '---------------end-----------------';
end loop;
end loop;
close v_cusor;
commit;
END;