ORACLE删除表锁的方法

数据库中容易引起死锁的问题很多,其中一个就是使用子查询删除数据的时候很容易引起,尽量避免通过子查询来删除数据,当存在锁的时候表基本上查询不了数据或者程序会发生nowait的异常提示,清除数据锁的方法如下:

declare cursor mycur is

select b.sid,b.serial#
from v$locked_object a,v$session b
where a.session_id = b.sid group by b.sid,b.serial#;
   
begin
for cur in mycur
loop
execute immediate ( 'alter system kill session '''||cur.sid || ','|| cur.SERIAL# ||''' ');
end loop;
end;

执行上面的sql后数据库中的所有锁全部清除。

linux下使用windows字体

windows下开发的程序有时候部署到linux服务器之后,一些东西会变成乱码,比如说程序生成word中的一些中文变成乱码,生成pdf中的一些中文变成乱码,这根本原因还是linux中没有这些中文的编码,从根本上解决这个问题就是把windows的所有字体都放到linux下就可以了,下面是让linux使用windows字体的办法:

1.在windows下找到存放字体的文件夹c:/windows/fonts,把这个文件夹复制到linux服务器上,随便放置一个位置如:/windowsfonts

2.在linux服务器上找到字体配置文件/etc/fonts/fonts.conf,把windows字体的路径加上如下:

<!-- Font directory list -->

        <dir>/usr/share/fonts</dir>
        <dir>/windowsfonts</dir><!-- windows字体路径 -->
        <dir>/usr/share/X11/fonts/Type1</dir>
        <dir>/usr/share/X11/fonts/TTF</dir>
        <dir>/usr/local/share/fonts</dir>
        <dir>~/.fonts</dir>

3.执行命令让字体的配置生效

fc-cache -f

这样就根本上解决了linux下字体的问题,不管是哪个应用程序都不会再出现乱码。

对于aspose.words生成的pdf文件还需要调用api指定windows字体的位置,方法如下:

FontSettings.setFontsFolder("/windowsfonts", true);

如何得到aspose.words请看另外一篇文章:如何破解aspose cells words for java