MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

1 from scratch  从0开始,白手起家
2 and so forth  等等,诸如此类,与and so on意思差不多
3 I cann't agree with you more 我非常同意,我再同意不过了
4 Nothing could be further from the truth 大错特错

posted @ 2007-07-31 18:37 leekiang 阅读(400) | 评论 (0)编辑 收藏

可靠性 reliability 
产品在规定条件下和规定时间内,完成规定功能的能力。 

维修性 maintainability 
在规定条件下使用的产品在规定的时间内,按规定的程序和方法进行维修时,保持或恢复到能完成规定功能的能力。 有效性 availability 可以维修的产品在某时刻具有或维持规定功能的能力。   

耐久性 durability 
产品在规定的使用和维修条件下,达到某种技术或经济指标极限时,完成规定功能的能力。 

失效(故障) failure 
产品丧失规定的功能。对可修复产品通常也称故障。 

失效模式 failure mode 
失效的表现形式。 失效机理 failure mechanism 引起失效的物理、化学变化等内在原因。 

误用失效 misuse failure 
不按规定条件使用产品而引起的失效。 

本质失效 Inherent weakness failure 
产品在规定的条件下使用,由于产品本身固有的弱点而引起的失效。 

早期失效 early failure 
产品由于设计制造上的缺陷等原因而发生的失效。 

偶然失效 random failure 
产品由于偶然因素发生的失效。 

耗损失效 wear out failure 
产品由个老化、磨损、损耗、疲劳等原因引起的失效。 www.可靠性.com 

维修 maintenance 
为保持或恢复产品能完成规定功能的能力而采取的技术管理措施。 

维护 preventlive maintenance 
为防止产品性能退化或降低产品失效的概率,按事前规定的计划或相应技术条件的规定进行的维修,也可称预防性维修。 

修理 corrective maintenance 
产品失效后,为使产品恢复到能完成规定功能而进行的维修。  

可靠度 reliability 
产品在规定的条件下和规定的时间内,完成规定功能的概率。 

可靠度的观测值 observed reliability 
a.对于不可修复的产品,是指直到规定的时间区间终了为止,能完成规定功能的产品数与在该时间区间开始时刻投入工作的产品数之比。 
b.对于可修复产品是指一个或多个产品的无故障工作时间达到或超过规定时间的次数与观察时间内无故障工作的总次数之比。 
注:在计算无故障工作总次数时,每个产品的最后一次无故障工作时间若不超过规定的时间则不予计人。 

累积失效概率 cumulative failure probability 
产品在规定的条件下和规定的时间内失效的概率,其数值等于一减可靠度。 

累积失效概率的观测值 observed cumulative failure probability 
www.可靠性.com

对于不可修复和可修复的产品都等于一减可靠度的观测值。 

平均寿命(平均无故障工作时间) mean life(mean time between failures) 
寿命(无故障工作时间)的平均值。 

平均寿命(平均无故障工作时间)的观测值 observed mean life(observed mean time between failures) 
a.对于不可修复的产品,当所有试验样品都观察到寿命终了的实际值时,是指它们的算术中均值;当不是所有试验样品都观测到寿命终了的截尾试验时是指受试样品的累积试验时间与失效数之比。 
b.对可修复的产品,是指一个或多个产品在它的使用寿命期内的某个观察期间累积工作时间与故障次数之比。 

失效率 failure rate 
工作到某时刻尚未失效的产品,在该时刻后单位时间内发生失效的概率。 

失效率的观测值 observed failure rate 
在某时刻后单位时间内失效的产品数与工作到该时刻尚未失效的产品数之比。 

平均失效率的观测值 observed mean failure rate 
a.对于不可修复的产品是指在一个规定时期内失效数与累积工作时间之比。 
b.对于可修复的产品是指它的使用寿命期内的某个观察期间一个或多个产品的故障发生次数与累积工作时间之比。 
转自http://blog.sina.com.cn/u/4c5e9d0b010007u7

posted @ 2007-07-31 18:35 leekiang 阅读(288) | 评论 (0)编辑 收藏

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source Editor\Editor Name
如果View Source Editor\Editor Name节点没有,则新建。
然后在Editor Name的"默认"里填入新编辑器的路径,如"C:\Program Files\Notepad++\notepad++.exe"

posted @ 2007-07-31 17:56 leekiang 阅读(1115) | 评论 (0)编辑 收藏

1,排序,用alias="外键对象",如果有一行的外键为空,则会报错
2,可用 pageContext.getAttribute("var名字")得到当前行的对象
3,为什么et里的el表达式在servlet2.3下也能用,
4,filterCell="droplist"的用法
5,title="${title}"没问题,但用title="<%=request.getPatameter("title")%>"不行。
   可以用title=="<span id='title'>${title}</span>",但要注意单双引号的交错
6,有些属性,其取值为[1,2,3,...] 如果要在列表里显示名字,并且要使用droplist,可在vo中加一个getXxxName()的方法,方法里用case switch结构返回各个数值的中文释义,
然后在标签中就可以把xxxName当作属性使用了。(只须有getter,可以不要setter)
7,日期列的格式化
  cell="date" format="yyyy-MM-dd HH:mm:ss"
8,要支持导出,必须定义filter:
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
<init-param>
<param-name>responseHeadersSetBeforeDoFilter</param-name>
<param-value>true</param-value>
</init-param>               
</filter>
<filter-mapping>
<filter-name>eXtremeExport</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
9,导出excel时名称为乱码的解决办法:
   重写ExportFilter,然后在web.xml里把默认的那个导出过滤器替换掉。
见http://www.blogjava.net/lucky/archive/2006/04/08/40004.html
http://blog.csdn.net/micro_nucleus/archive/2006/06/09/782667.aspx
10,displaytag支持portlet?
15,其他
http://blog.csdn.net/using_wisdom/archive/2007/10/31/1859449.aspx
http://www.blogjava.net/wuxufeng8080/articles/56985.html

posted @ 2007-07-28 18:06 leekiang 阅读(345) | 评论 (0)编辑 收藏

1,用exporter.setParameter(JRExporterParameter.PAGE_INDEX,new Integer(page)) 进行分页,一直显示正常,当使用
exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT_LIST,totalJprint);
在HTML显示时会把多页一起显示出来,无法分页显示,为什么?

2,
用ireport3.0打开一个旧的jrxml文件并且运行,
发现ireport把<box>元素的topBorderColor属性改成了<box>子元素<topPen>的lineColor属性。
查看最新的dtd,发现新旧两种方式都支持。
旧的<box topBorder="None"
        topBorderColor
="#000000" leftBorder="1Point"
        leftBorderColor
="#000000" rightBorder="1Point"
        rightBorderColor
="#000000" bottomBorder="1Point"
        bottomBorderColor
="#000000" />
        
    新的    
<box>
        
<topPen lineWidth="0.0"
         lineStyle
="Solid" lineColor="#000000" />
        
<leftPen lineWidth="1.0"
         lineStyle
="Solid" lineColor="#000000" />
        
<bottomPen lineWidth="0.0"
         lineColor
="#000000" />
        
<rightPen lineWidth="1.0"
         lineStyle
="Solid" lineColor="#000000" />
       
</box>

     但<bottomPen>明显有问题,少一个lineStyle,另外应该为lineWidth="1.0" 

3, 常见报表模型:列表、分组、主从、嵌套、交叉、图形、套打、分栏、填报。

4, sf的DynamicJasper使JasperReports具有动态报表的能力。
http://blog.csdn.net/chszs/archive/2007/09/23/1796815.aspx
     
       

posted @ 2007-07-26 22:27 leekiang 阅读(600) | 评论 (0)编辑 收藏

      如果发布的j2ee应用没有EJB方面的,用jboss和tomcat差别不大。JBoss的Servlet Container也是Tomcat。JBoss做的改进主要是修改了tomcat的session replication部分,使之支持使用JBoss Cache进行session的复制功能。
      jboss默认实现了APR,性能要好不少了吧?还有安全框架、数据库连接池、JTA等方面。


JBoss,Geronimo还是Tomcat?
Four open source Java application servers compared

posted @ 2007-07-26 17:36 leekiang 阅读(408) | 评论 (0)编辑 收藏

1,"&"有时候不认,则改为"&amp;"

   但在执行insert操作或update操作时如果sql语句中含"&amp;",如何处理?

        1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'         2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'其中||是连字符, chr(38)跟ASCII的字符转码是一致的。plsql中还可以set define off来关闭特殊字符,还可以用show define来查看有些特殊定义的字符


2,慎用where pid!=3等用法,这样没有囊括is null的情况,要实现同样目的可where pid!=3 or pid is null
3,快速从另外一个表复制数据
  insert into tablea (id,name) select id,name from tableb
4,查版本
  select * from PRODUCT_COMPONENT_VERSION;或 select * from v$version;
5,nls==National   Language   Support   国际语言支持
6,PLSQL
  HKEY_CURRENT_USER\Software\Allround Automations
  HKEY_CURRENT_USER\Software\Microsoft\Security
7,查blob大小
  select dbms_lob.getlength(blobfield) from wd_blob
8,改变表空间
  alter table TB_USER move tablespace myspace;
  如果被转移表空间的表含有索引, 表转移后索引变得不可用. 要删除旧索引,建立新索引
  alter index user_name.index_name rebuild; 主键索引名与主键名相同
9,导入时表空间错误
  导出dmp时的用户的默认表空间必须是表所在的表空间,这样导入时才不会出错。
  如果dmp小,也可用UE打开直接修改表空间。

10,用select into 复制数据
insert into test
  (id, name)
  select id, name from mis@dblink;
  或
  create table test--需先删表
as (select * from mis@dblink)

11,中文字段按拼音排序:
select username from tab_name order by nlssort(username,'nls_sort=schinese_pinyin_m');
按偏旁部首:
select username from tab_name order by nlssort(username,'nls_sort=schinese_radical_m');
按笔画:
select username from tab_name order by nlssort(username,'nls_sort=schinese_stroke_m');

12,插入带单引号的字符

insert into t(a) values ('a'||chr(39)||'b' );
或insert into t(a) varlus ('a''b');

13,如果你连接到数据库后没有在取nextval之后再取currval,就会出现ORA-08002出错.  
  因此对每一个session来说,应该先用nextval,才可以取currval。

14

truncate table mapevent时,如果建了外键引用(外键所在那张表不一定有数据,有数据就会报另外一个错误了)
则报 ORA-02266:表中的唯一主键被启用的外部关键字引用
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
(外键所在那张表无数据时delete from table mapevent是可以执行的)
正确的步骤:
----------------
alter table mapevent disable primary key cascade;
truncate table mapevent;
alter table mapevent enable primary key;
---------------

15
查询某个表被哪些表引用
select *
  from user_constraints t
 where t.constraint_type = 'R'
   and t.r_constraint_name = '该表的主键名';

16,按中文排序,但中文的一二三四五有问题,可用下面的办法:

select * from T_TIME_SETUP order by translate(ccname,'一二三四五','12345')

来源:http://www.itpub.net/226375,1.html

17,误删了怎么办?用Oracle中的回闪查询

查20分钟前的数据:

 select * from tb_wz as of timestamp(sysdate - 20 / 1440)

  http://blog.csdn.net/xuyuan77/archive/2007/06/06/1640757.aspx

18,导出带有blobh或clob类型字段表时会出现:EXP-00003: 未找到段 (8,375419) 的存储定义
 原因见http://read.newbooks.com.cn/info/116619.html

19,导出命令

exp Test1/Test1passwd@服务名 owner=Test1 file=D:\files\Test1.dmp log=d:\log.log

exp还有一个参数full=y

imp aichannel/aichannel@HUST full=y  file=test.dmp ignore=y

20,查oracle的保留字 select * from v$reserved_words

21,修改序列的当前值

alter sequence userseq increment by 500;
 select userseq.nextval from dual;
alter sequence userseq increment by 1;


22,序列跳20号
create sequence ORA_SEQ
minvalue 100000000000
maxvalue 999999999999
start with 100000000260
increment by 1
cache 20
如果设置了cache 20,数据库关闭时这20个序列成员会丢失,造成序列不连续的现象。
序列设置nocache模式即可
http://topic.csdn.net/u/20090421/20/7edde8ab-dbcc-4765-b9b9-a7fae3d2af39.html
绝不能跳号的序列号设计问题 http://www.itpub.net/viewthread.php?tid=403149

23,用9i的OEM去连10g,如果是普通用户登录,就会报
你必须具有select any dictionary权限才能运行此应用程序,请要求DBA为你赋予此权限
 这是是9I的OEM在连接10G的数据库的时候的一个BUG,目前没有解决办法。
http://www.itpub.net/thread-888007-1-1.html

24,可用其他dba用户修改system用户的密码

25,查看oracle最大连接数
show parameter processes
show parameter sessions
一个session对应一个process,但是一个process未必对应一个session
SELECT * FROM v$process p
 WHERE NOT EXISTS (SELECT 1 FROM v$session WHERE p.paddr = p.addr);
 alter system set sessions=300 scope=spfile;需重启

v$resource_limit视图各字段的含义
current_utilization   -   Number   of   (resources,   locks,   or   processes)   currently
being   used

max_utization   -   Maximum   consumption   of   the   resource   since   the   last
instance   start   up 自从上次启动以来的最大值

initial_allocation   -   Initial   allocation.   This   will   be   equal   to   the   value
specified   for   the   resource   in   the   initialization   parameter
file   (UNLIMITED   for   infinite   allocation)

limit_value   -   Unlimited   for   resources   and   locks.   This   can   be   greater
than   the   initial   allocation   value   (UNLIMITED   for   infinite
limit).

26,
IMP-00003: 遇到 ORACLE 错误 959
ORA-00959: 表空间'TBS_BSS'不存在
这种类型的错误往往是因为表上有大字段,而大字段所在的表空间不存在。普通字段是可以导到不同名的表空间的。

27,
alter table USERS add  primary key (userid);//不好,会自动生成约束名,不利于移植数据
alter table USERS  add  constraint PK_USERS  primary key (userid);//ok.外键也是如此。

28,
INTERSECT 操作符用来返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。


posted @ 2007-07-15 03:15 leekiang 阅读(611) | 评论 (0)编辑 收藏

select rownum,c1 from t1 where rownum > 10没有记录,

因为第一条不满足去掉的话,第二条的ROWNUM又成了1,所以永远没有满足条件的记录。或者可以这样理解:

ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。如果你用>,>=,=,between...and这些条件,因为从缓冲区或数据文件中得到的第一条记录的rownum为1,则被删除,接着取下条,可是它的rownum还是1,又被删除,依次类推,便没有了数据。

select rownum,c1 from t1 where rownum != 10 为何是返回前9条数据呢?
为什么 rownum >1 时查不到一条记录,而 rownum >0 或 rownum >=1 却总显示所以的记录
任何时候想把 rownum = 1 这条记录抛弃是不对的,它在结果集中是不可或缺的,少了rownum=1 就像空中楼阁一般不能存在,所以你的 rownum 条件要包含到 1

但如果就是想要用 rownum > 10 这种条件的话话就要用嵌套语句,把 rownum 先生成,然后对他进行查询。
select *
from (selet rownum as rn,t1.* from a where ...)
where rn >10

一般代码中对结果集进行分页就是这么干的。

另外:rowid 与 rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有 rownum那些情况发生。

详见http://hi.baidu.com/jztchina/blog/item/4cca34971258fe6954fb96d6.html

Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序。假如你有一个SQL语句如下所示
SELECT
        EMP_NO
FROM
        EMP
WHERE
        ROWNUM 
< 10
ORDER BY
        EMP_NO

        在检索的时候,会首先把数据检索出来,也就是把EMP表数据都检索出来,然后再Order by排序操作。因为ROWNUM 数据是在排序前就检索出来的了,所以不能利用ROWNUM来取得排序后的前10条操作。那么应该如何操作呢。其实很简单,利用子查询,先排序,再取ROWNUM。如下所示

SELECT
        EMP_NO
FROM
        (
        
SELECT 
                EMP_NO
        
FROM
                EMP
        
ORDER BY
                EMP_NO
        )
WHERE
        ROWNUM 
< 10

posted @ 2007-07-15 03:12 leekiang 阅读(510) | 评论 (0)编辑 收藏

create or replace trigger auth_secure
before insert or update or delete 
on auths //对整表更新前触发
begin
if(to_char(sysdate,'DY')='SUN'
RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');
end if;
end 

RAISE_APPLICATION_ERROR的错误代码在-20000到-20999之间,这样就不会与 ORACLE 的任何错误代码发生冲突

禁止ddl操作
create or replace trigger ddl_deny
before create or alter or drop or truncate on database//系统级别的触发器
declare
v_errmsg varchar2(100):= 'You have no permission to this operation';
begin
if ora_sysevent = 'CREATE' then
raise_application_error(-20001, ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' || v_errmsg);
elsif ora_sysevent = 'ALTER' then
raise_application_error(-20001, ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' || v_errmsg);
elsif ora_sysevent = 'DROP' then
raise_application_error(-20001, ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' || v_errmsg);
elsif ora_sysevent = 'TRUNCATE' then
raise_application_error(-20001, ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' || v_errmsg);
end if;
exception
when no_data_found then
null;
end;
又一例:
create or replace trigger his_trig_u
  after update ON MYDATA
  FOR EACH ROW
declare
  temp_count number;
BEGIN
  select count(*)
    into temp_count
    from DATAHIS t
   where t.num = :new.num
     and t.time = :new.time;
  if temp_count = 0 then
    insert into DATAHIS
      (uid, num, value, time)
    values
      (data_sql.nextval,
       :new.num,
       :new.value,
       :new.time);
  end if;
END;
begin前面出现的new,old不加冒号,begin和end之间出现的new和old都要在前面加上":"

用触发器完成动态数据的操作
  在涉及如何实现动态库存的问题时,可用触发器解决。仓库有验收、出库、调拨、报废、退料、让售等这些数据必须与以前的库存相加减,才能完成动态库存操作。本文仅以验收单触发器为例,其它的结构雷同。它们涉及到两个基表:bi­_ysd(验收单),Bj_kcb(当前库存表),前者的表结构(rq(日期),ysdh(验收单号), bjbm(备件编码),yssl(验收数量),ysdj(验收单价)),后者的表结构为(bjbm(备件编码),dqkcl(当前库存量),dqkcje(当前库存金额))触发器如下:
  
 create or replace trigger trig_ysd
 after insert or update or delete on bj_ysd
 for each row
  declare rq1 varchar2(8);rq2 varchar2(8);
  /*限于篇幅,yssl1,yssl2,ysdj1,ysdj2,bjbm1,bjbm2,ii声明略*/
  if inserting or updating then
   rq1:=:new.rq;bjbm1:=:new.bjbm;yssl1:=:new.yssl;
   ysdj1:=:new.ysdj;
  
   select count(*) into ii from bj_dqkcb
   where bjbm=bjbm1;
  
   if ii=0 then
    insert into bj_dqkcb(bjbm,dqkcl,dqkcje)
    value(bjbm1,yssl1,ysdj1);
   else
    update bj_dqkcb
    set dqkcl=dqkcl+yssl1;
       dqkcje=dqkcje+yssl1*ysdj1;
   end if
  end if
  
  if deleting or updating then
   rq2:=:old.rq;
   bjbm2:=:old.bjbm;
   yssl2:=:old.yssl;
   ysdj2:=:old.ysdj;
   update bj_dqkcb
   set dqkcb=dqkcl-yssl2;
    dqkcje=dqkcje-yssl2*ysdj2
  end if;
 end ;

posted @ 2007-07-14 22:35 leekiang 阅读(321) | 评论 (0)编辑 收藏

别名为什么不能做条件,ORA-00904: "CCC": 标识符无效。

请教:
SQL> select jno,jname,nval,val,val-nval ccc from jj where ccc > 1;
出现错误:
ORA-00904: "CCC": 标识符无效

为什么啊,查资料select的用法里面没用查到。
SQL> select jno,jname,nval,val,val-nval ccc from jj where (val-nval)> 1;
这样就可以的,我还想按 ccc 排序,也不行。
哪位老大指点一下,多谢!!

where子句中只能直接使用栏位或者常量,而不能使用栏位的别名,除非这个别名来自子查询之中,如:select .... from (select col1 ccc from table) where ccc > 1
而order by 则可以直接使用别名,如select col1 ccc from table order by ccc
我想,这和sql 的执行顺序是有关的,where中的部分先执行 -> 如果有group by,接着执行group by -> select中的函数计算、别名指定再运行 -> 最后order by
因此,字段、表达式的别名在where子句和group by子句都是不能使用的,而在order by中不仅可以使用别名,甚至可以直接使用栏位的下标来进行排序,如:order by 1 desc,2 asc 呵呵

posted @ 2007-07-04 20:53 leekiang 阅读(4738) | 评论 (1)编辑 收藏

仅列出标题
共54页: First 上一页 46 47 48 49 50 51 52 53 54 下一页