现场实施记录(不定期更新)

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;


 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值