java dump配置_Java过程修改dump文件成特定字符集

前一段时间在

http://www.itpub.net/showthread. ... 15&pagenumber=1

中讨论的DMP不同字符集之间自由转换工具,经过一位java朋友的帮忙,今天奉献上biti提议的java存储过程修改方法:

DumpChange.java脚本:

import java.io.*;

public class DumpChange

{

public static String ChangeCharSet(String fileName,String value)

throws IOException,NumberFormatException

{

try

{

value=value.trim();

if(value.length()<4)

value=new String("0000"+value).substring(value.length());

else if(value.length()>4)

throw new NumberFormatException(value+"is error,length>4.&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

RandomAccessFile raf=new RandomAccessFile(fileName,"rw&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

byte[] bts=new byte[2];

bts[0]=new Integer(Integer.parseInt(value.substring(0,2),16)).byteValue();

bts[1]=new Integer(Integer.parseInt(value.substring(2),16)).byteValue();

raf.seek(1);

raf.write(bts);

raf.close();

return "OK";

}

catch(Exception e)

{

return e.toString();

}

}

}

C:\>loadjava -user scott/tiger@ora8db1 -r -f -v c:\yztbak\DumpChange.java

initialization complete

loading  : DumpChange

creating : DumpChange

resolver :

resolving: DumpChange

C:\>sqlplus /nolog

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Aug 13 15:35:00 2002

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

SQL> conn sys/change_on_install@ora8db1 as sysdba

Connected.

SQL> CREATE OR REPLACE FUNCTION SCOTT.DumpCharSet(FileName in varchar2,HexCharSe

t in varchar2) return varchar2 as language java name 'DumpChange.ChangeCharSet(j

ava.lang.String,java.lang.String) return java.lang.String';

2  /

Function created.

SQL> CREATE OR REPLACE  FUNCTION SCOTT.TO_CHARSET

2  (Filename in varchar2,CharSet in varchar2) return varchar2

3  as

4  HexId varchar2(10);

5  ret varchar2(500);

6  begin

7      select to_char(NLS_CHARSET_ID(CharSet),'xxxx') into HexId from dual;

8      HexId:=trim(HexId);

9      select DumpCharSet(Filename,HexId) into ret from dual;

10      return ret;

11  end;

12  /

Function created.

SQL> execute dbms_java.grant_permission('SCOTT','SYS:java.io.FilePermission','d:

\db_databak\scott.dmp','read,write');

PL/SQL procedure successfully completed.

SQL> select SCOTT.to_charset('d:\db_databak\scott.dmp','ZHS16GBK') from dual;

SCOTT.TO_CHARSET('D:\DB_DATABAK\SCOTT.DMP','ZHS16GBK')

--------------------------------------------------------------------------------

OK

SQL>

注:“d:\db_databak\scott.dmp”是server上的路径。(没有测试如\\svr-001\public\scott.dmp这种形式路径是否可以。)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值