|
提点意见,程序写得罗嗦点。既然要用的不是String干吗传个String进去,又TRIM,又判断长度的。
DumpChange.java脚本:
import java.io.*;
public class DumpChange
{
public static String ChangeCharSet(String fileName,short value)
throws IOException
{
try
{
RandomAccessFile raf=new RandomAccessFile(fileName,"rw" ;
byte[] bts=new byte[2];
bts[0]=value / 256;
bts[1]=value % 256;
raf.seek(1);
raf.write(bts);
raf.close();
return "OK";
}
catch(Exception e)
{
return e.toString();
}
}
}
CREATE OR REPLACE FUNCTION SCOTT.DumpCharSet(FileName in varchar2,charsetid in number) return varchar2 as language java name 'DumpChange.ChangeCharSet(j
ava.lang.String,short) return java.lang.String';
/
Function created.
CREATE OR REPLACE FUNCTION SCOTT.TO_CHARSET
(Filename in varchar2,CharSet in varchar2) return varchar2
as
charsetid number(5,0);
ret varchar2(500);
begin
charsetid := NLS_CHARSET_ID(CharSet);
if charsetid is null then
return 'INVALID CHARACTER SET SPECIFIED';
end if;
select DumpCharSet(Filename,charsetid) into ret from dual;
return ret;
end;
/ |
|