今天一个系统的Oracle数据库升级后,遇到如下的错误:ORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], []
百度告诉我:这个问题可能是Oracle的版本问题,可用ojdbc14.jar代替classes12.jar,因为从oracle 9.2之后,对jdbc 的驱动程序的命名将有所改变,JDK1.1,JDK1.2的驱动程序名(class12.jar)将不再改变,一直沿用下去,从JDK1.4开始驱动程序名将所有改变,例如:JDK1.4的驱动名为ojdbc14.jar 。JDK1.5的驱动名为ojdbc15.jar。
重新下载了对应的驱动程序后,问题得到解决。
ORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], [] 
Posted by 唧唧 | tags: Oracle ORA-00600
CentOS定时同步系统时间 
Posted by 唧唧 | tags: CentOS 定时器 时间
使用Linux.VPS第二天,发现系统时间不正确,手动修改或者同步正确一次后,运行半天发觉时间又快了几分钟,反正是运行得越久就越快,难道VPS穿越啦?
和VPS管理员沟通无果,再上网搜索一番后,决定使用定时器自动同步时间算啦。
ssh执行命令:
#crontab -e
执行后加入一行:(和vi命令一样,按i进入编辑模式,Esc返回命令模式,:w保存修改,:q退出)
*/30 * * * * /usr/sbin/ntpdate us.pool.ntp.org >> /var/log/crontab.log 2>&1
数字30表示30分钟执行一次,保存和退出后,还需要重启定时任务器才行哦:
#service crond restart
尝鲜,博客和论坛搬迁到了CentOS服务器 
由于服务器到期,为了更好地学习Linux的服务器配置和管理,不至于在公司和机房折腾Linux系统手忙脚乱,这次换了个CentOS系统,有事没事就去折腾一番。
之前接触过RedHat、Ubuntu、Asianux,感觉挺好玩的,就是复杂了点,有时折腾得会气死人的。但是,我还是要去征服它!Linux,我来了!
SQL Server数据库ntext字段内容追加 
今天在编写一个触发器的时候,遇到要更新一个表的ntext字段,开始使用常规的语句:
Update table set content = content + @info where id=@id
会报错:对数据类型而言运算符无效。运算符为 add,类型为 ntext。
后来经过百度谷歌得知,SQL Server专门提供了处理text,ntext,image字段的函数,他们是:TEXTPTR
TEXTVALID、READTEXT、UPDATETEXT、WRITETEXT
最后得到解决方法:
...删除Oracle某数据库下的所有表 
今天使用imp导入dmp格式的数据库备份的时候,发现导入出错,提醒对象已经存在,才记起来要先删除所有表才能导入,如果数据库有几十上百个表的话,一个一个去删除真浪费时间。为了方便,就写了一条语句来查询所有表和生成批量删除的语句:
select 'drop table '||table_name||';' as sqlscript from user_tables;
SQLSCRIPT
--------------------------------------------
drop table LO_CASEINFO;
drop table LO_HARMONIZECASE;
drop table LO_LAWCHECK;
drop table LO_LEGISLATIONITEM;
drop table LO_TRAINBATCH;
drop table OA_IMPRESS;
drop table OA_SYSGROUP;
解决webLogic无法使用jasperreports生成报表的问题 
Posted by 唧唧 | tags: Linux webLogic jasperreports
Linux下webLogic无法使用jasperreports(iReport)生成报表的问题解决方法
今天在Linux下的webLogic部署一个项目后,发现报表无法导出了(但是在Windows开发环境下正常),后台报错如下:
java.lang.InternalError: Can´t connect to X11 window server using ´:0.0´ as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay()V(X11GraphicsEnvironment.java:???)
at sun.awt.X11GraphicsEnvironment.<clinit>()V(X11GraphicsEnvironment.java:134)
at jrockit.vm.Classes.forName0(Ljava.lang.String;ZI)I(Unknown Source)
at jrockit.vm.Classes.forName(Ljava.lang.String;ZLjava.lang.ClassLoader;)Ljava.lang.Class;(Unknown Source)
at java.lang.Class.forName(Ljava.lang.String;I)Ljava.lang.Class;(Unknown Source)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()Ljava.awt.GraphicsEnvironment;(GraphicsEnvironment.java:62)
at net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv()V(JRGraphEnvInitializer.java:58)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(Lnet.sf.jasperreports.engine.JasperReport;Lnet.sf.jasperreports.engine.fill.JREvaluator;Lnet.sf.jasperreports.engine.fill.JRBaseFiller;)V(JRBaseFiller.java:307)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(Lnet.sf.jasperreports.engine.JasperReport;Lnet.sf.jasperreports.engine.fill.JREvaluator;Lnet.sf.jasperreports.engine.fill.JRBaseFiller;)V(JRVerticalFiller.java:92)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(Lnet.sf.jasperreports.engine.JasperReport;)V(JRVerticalFiller.java:74)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(Lnet.sf.jasperreports.engine.JasperReport;)Lnet.sf.jasperreports.engine.fill.JRBaseFiller;(JRFiller.java:147)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(Lnet.sf.jasperreports.engine.JasperReport;Ljava.util.Map;Lnet.sf.jasperreports.engine.JRDataSource;)Lnet.sf.jasperreports.engine.JasperPrint;(JRFiller.java:83)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(Lnet.sf.jasperreports.engine.JasperReport;Ljava.util.Map;Lnet.sf.jasperreports.engine.JRDataSource;)Lnet.sf.jasperreports.engine.JasperPrint;(JasperFillManager.java:601)
...
经过左问Baidu,右问Google,加上验证得到Debug方法如下:
在startWebLogic.sh中加一行:JAVA_OPTIONS = -Djava.awt.headless=true
如果已有JAVA_OPTIONS配置行,则可以追加 -Djava.awt.headless=true
重启webLogic,问题解决!
PLSQL Developer + Oracle客户端简易安装方法 
Posted by 唧唧 | tags: PLSQL Oracle 客户端
之前一直都是用eclipse自带的Data Source Explorer访问Oracle数据库,可是只能简单地查看,而且很多字段不兼容。
今天开始使用PLSQL Developer连接远程Oracle数据库的时候,提示我没有安装Oracle客户端,才知道PLSQL Developer不是独立的软件,是要基于Oracle客户端运行的。
下面就介绍一下没有安装Oracle数据库的情况下,单独安装一个客户端。
1、到Oracle官方网站下载一个客户端:http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html
...Struts2标签和EL表达式混合使用会导致乱码 
Posted by 唧唧 | tags: Struts2 EL 乱码
今晚在配置Struts2环境的时候,遇见了中文乱码啦。配置了struts.i18n.encoding和SetCharacterEncodingFilter还是不行,最后发现如下规律:
Struts2标签和EL表达式混合使用会导致乱码:
如图所示,如果s2标签的值用el表达式代替的话,会导致中文乱码。
中文乱码:<s:param name="el">${c.cname}</s:param>,但是如果${c.cname}直接在页面上显示出来的话,是不会乱码的!
中文正常:<s:param name="cname"><s:property value="cname"/></s:param>
注意查看浏览器地址栏,虽然值一样,但是编码后都不同了:

- <%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Insert title here</title>
- </head>
- <body>
- <s:iterator id="c" value="category">
- <s:url id="url" action="index">
- <s:param name="cid">${c.cid}</s:param>
- <s:param name="el">${c.cname}</s:param>
- <s:param name="cname"><s:property value="cname"/></s:param>
- </s:url>
- <s:a href="%{url}">${c.cid}.${c.cname}.<s:property value="cname"/></s:a>
- </s:iterator>
- <br/><br/>
- you chose:
- cid=${param.cid}<br/>
- el=${param.el}<br/>
- cname=${param.cname}<br/>
- </body>
- </html>
Oracle 分页和排序问题探讨 
Posted by 唧唧 | tags: Oracle 分页 排序 rownum
1、在ORACLE中,rownum是一个伪列,对于这个列,只能使用"<"或者"<="这两个操作符;
2、它一定是从1开始的,不能跨过1;
3、不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录。执行总是显示:未选定行。
如果要使用 >,>=,=,Between...and 操作符,可以使用子查询把rownum转为实际列:
select namef from (select rownum r,namef from tablename)t where r > 10;
select namef from (select rownum r,namef from tablename)t where r between 10 and 20;
Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。
SQL> select rownum ,id,name from student order by name;
ROWNUM ID NAME
---------- ------ ---------------------------------------------------
3 200003 李三
2 200002 王二
1 200001 张一
4 200004 赵四
可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询
SQL> select rownum,id,name from (select * from student order by name);
ROWNUM ID NAME
---------- ------ ---------------------------------------------------
1 200003 李三
2 200002 王二
3 200001 张一
4 200004 赵四
这样就成了按name排序,并且用rownum标出正确序号。
Oracle 异常: ORA-12541: TNS:no listener;无监ting器 
Posted by 唧唧 | tags: Oracle Io异常 listener
Oracle Io异常: The Network Adapter could not establish the connection
今天刚上班,启动项目时总是报(Io异常: The Network Adapter could not establish the connection),昨天还好好的呢,今天怎么就不行了?使用 telnet 192.168.8.201 1521测试连不通,还以为是防火墙搞鬼;而跑到服务器上面关闭服务器防火墙还是不行,并且直接telnet 127.0.0.1 1521还是不通。到此可以确定是oracle的服务异常了。
解决方法:
1、首先打开oracle配置和移植工具 --> Net manager --> 本地 --> 监听程序 -- > listener --> (TCP/IP协议的)网络地址 ---> 把主机那一项改为"localhost";然后点击:本地-->服务命名-->(TCP/IP协议的)网络地址 ---> 把主机名那一项改为"localhost"。
2、点击"命令"菜单-->测试服务,却显示ORA-12541: TNS:no listener,如图:
3、查看和启动监Ting器:
开始-->运行-->lsnrctl
4、通过查看监Ting器状态给出解决办法
lsnrctl>status
正在连接到 ***
TNS-12541: TNS:无监Ting器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监Ting器
32-bit Windows Error: 2: No such file or directrory
正在连接到 ***
TNS-12541: TNS:无监Ting器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监Ting器
32-bit Windows Error: 61: Unknown error
5、启动监Ting器
LSNRCTL> start
启动tnslsnr:请稍候...
6、重试第2步骤,测试连接成功。





阿云: