一、informix
a、文件处理
--cp FZ00.FZ0020.000120048466.1.trs /tmp --下载到/tmp目录
--cd /tmp
--unzip FZ00.FZ0020.000120048466.1.trs --解压文件
--cat FZ00.FZ0020.000120048466.1.dat --查看文件内容
--cat 查看
--vi 编辑 :q!退出编辑
--ls -l -h YH00.VSS.000101762975.1.trs --查看文件大小
--mv FZ00PF.FZ00.000100007064.1.dat /history --移动文件
--su - bmjob 用户名 --用户切换
b、删除带参数的存储过程
drop procedure RPT_GoodsSaleSum(date,date,int,varchar(10), int,varchar(15))
导存储过程命令:
dbschema -d dbdms -f st_fpoaskration
c、锁表
查看资源占用
set isolation to dirty read;
DATABASE sysmaster;
select * from syssessions
---
select * from sysmaster:syslocks
--独占锁表
--begin work;
-- lock table venderdiscrpt in exclusive mode;
-- delete from venderdiscrpt;
--commit
onstat -u 查看用户
onmode -z sessid 把其它人踢掉。
用oncheck -cI 数据库名进行检查,如果发现有锁表现象,
用who -u找见进此用户的进程号,
用ps -ef|grep pts/??
用kill -9 进程号 进程号
d、存储过程语句
select * from sysprocedures a,sysprocbody b
where datakey="T" and a.procid=b.procid and a.procname=lower("io_purchaseask_to")
e、索引最好分开建到10个索引空间中,有利于io均衡.
建索引前用以下sql查询各数据空间的使用率,索引建到可用空间多的数据空间中.
select name dbspace,sum(chksize) allocated,sum(nfree) free, round(((sum(chksize)-sum(nfree))/sum(chksize))*100)||"%" pcused
from sysdbspaces d,syschunks c
where d.dbsnum=c.dbsnum group by name order by 4 desc
if not exists(select 1 from systables a,syscolumns b where a.tabid=b.tabid and a.tabname=lower('goodsshop') and b.colname='activeflag' ) then
alter table goodsshop add activeflag int default 1 ;
end if
-------SQLServer增加表结构-----------
if not exists (select * from sysobjects a,syscolumns b where a.id=b.id and a.name='RPT_GoodsProffer' and b.name='maolizb')
alter table RPT_GoodsProffer add maolizb decimal(15,4)
--索引
SELECT a.tabname, b.colname, c.idxname FROM systables a, syscolumns b, sysindexes c
WHERE a.tabid = b.tabid AND a.tabid = c.tabid AND b.colno = c.part1 and a.tabname like lower('%user_list%');
select * from sysindices where idxname in
(select idxname from sysindexes a,systables b where a.tabid = b.tabid and tabname like lower('%goodsshop%'))
f、改表名>RENAME TABLE oldname TO newname
alter table 表名 modify (字段名 新类型)
ALTER TABLE TABLENAME ADD/DROP/MODIFY COLUMNNAME TYPE
如果你想跨事务使用游标,只能with hold
g、删除索引:
DROP INDEX index_name
删除主键:
alter table tabname drop constraint cons_name;
修改informix数据库表的主键,需要首先删除主键,再新建。
第一步:
查出该主键的约束的名字,查约束名SQL语句如下(TabName为表名):
SELECT constrname FROM sysconstraints
WHERE tabid = (SELECT tabid FROM systables WHERE lower(tabname)=lower('TabName') ) and constrtype ='P' ;
{
constrtype ='P' 是主键约束, 还有C 检查(Check)R 引用(外键)(Reference,Foreign Key) U 唯一 *** (Unique) N 非空(Not Null)
}
SELECT a.tabname, b.colname, c.idxname FROM systables a, syscolumns b, sysindexes c
WHERE a.tabid = b.tabid AND a.tabid = c.tabid AND b.colno = c.part1 and a.tabname like lower('%user_list%');
第二步:
删除主键(TabName为表名,u144_58为上一步查出的约束名),SQL语句如下:
alter table TabName drop constraint u144_58;
第三步:
新建主键(主键为policyno,classcode,loandate),SQL语句如下:
ALTER TABLE TabNameADD CONSTRAINT PRIMARY KEY (policyno,classcode,loandate) CONSTRAINT u144_58;{u144_58约束名可自定,必需唯一}
h、时间
datetime year to second default current year to second : 具体到时分秒
current + interval(30) minute to minute:当前时间加30分钟
current year to day - interval(7) day to day:当前日期减7天
To_char(current,'%Y%m%d%H%M%S'):20100401105737
to_char(date(current)+1,'%Y-%m-%d')||' 03:40:00', to_char(today+1,'%Y-%m-%d')||' 03:40:00'
i、Update
FOREACH Cur_OrderAdvice WITH HOLD FOR
SELECT GoodsID,ShopID INTO __GoodsID,__ShopID FROM Tmp_OrderAdviceGoods_0
LET __BreakPoint = 8207200;
update Tmp_OrderAdvice set (intendstockday, safestockday, maxstockday, adviceflag)=
((select intendstockday, safestockday, maxstockday, adviceflag from OrderAdvice
where goodsid = __GoodsID and shopid = __ShopId))
where goodsid = __GoodsID and shopid = __ShopId;
END FOREACH;
Update GSaleFlag set (Flag,Checker,CheckDate)=(100,__Checker,current) where SheetID=__SheetID and Flag=0;
j、select count(*) into __iCnt from sysProcedures where procname=lower(__sOBJName);
if object_id('tempdb..#Tmp_CPDGoodsItem') is not null drop table #Tmp_CPDGoodsItem; --SQL临时表
k、触发器
----机构变化时触发下传数据
--drop trigger tr_UserSystem_Ins;
create trigger tr_UserSystem_Ins Insert on User_System
referencing new as a for each row
(insert into USysChgURole_PDA0(shopid,userid,roleid,Modiattr,Modiopid) values(a.shopid,a.userid,'','A',''))
after (execute procedure SYN_PDA_USysChgURole('','','ins'))
--drop trigger tr_UserSystem_del;
create trigger tr_UserSystem_del Delete on User_System
referencing old as a for each row
(insert into USysChgURole_PDA0(shopid,userid,roleid,Modiattr,Modiopid) values(a.shopid,a.userid,'','D',''))
after (execute procedure SYN_PDA_USysChgURole('','','del'))
二、SQLServer
三、C#
a. 日期
DateTime dt = DateTime.Parse(e.EditValue);
DateTime startMonth = dt.AddDays(1 - dt.Day); //当月第一天
DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //当月最后一天
if (!dt.Equals(endMonth))
{
rsDateEdit2_2.EditValue = Convert.ToString(endMonth);
}
b. String.Format('{0:f3}',变量)