安装流程:
一、打开sybase的java支持:sp_configure “enable java”,1,由于单位内系统内已经有大量java函数,故此项自然打开。
二、写java 类。例:
package sw; public class cStrSplit{ public static String StrSplit(String oristr,String deli,int pos){ return oristr; } }
三、编译:由于aix下已无jdk 1.2.2环境,故而在虚拟机上装了jdk 1.2.2编译。
javac cStrSplit.java
四、打包jar:
jar cf0 sw.jar cStrSplit.class
五、上传至sybase服务器aix下。
六、安装jar包:
installjava -f /tmp/sw.jar -Uxx -Sxx -Pxx
注意:win平台下可能为instjava。另有-new 及-update选项可供选择是新安装还是更新java包。另可能出警告提示,若包名不对的话,但仍可安装。
七、测试安装成功否:
在sql查询工具中:
select (new sw.cStrSplit())>>StrSplit("mmmm","aaa",1)
若成功未报错,则是安装成功。但我在测试中,此行输出应为mmmmm,但仅输出1个m,不知为何。
八、增加调用外壳(wrapper)
create function StrSplit(oristr varchar(2048),deli varchar(255),pos int) returns varchar(2048) returns null on null input language java parameter style java external name 'sw.cStrSplit.StrSplit(java.lang.String,java.lang.String,int)' /* ### DEFNCOPY: END OF DEFINITION */
由原有java函数DDL修改而来,执行之。此步曾报过一个错误,方法在实例中无法执行之类,看java源码可知,由于不用select (new sw.cStrSplit())>>StrSplit方式调用而是直接调用,故源码中StrSplit函数应加static前缀。修改后即正常。
九、直接调用测试:
select StrSplit("mmmmnnnnn","aaa",1)
输出mmmmmnnnnn
正常。
注:经验证:installjava执行时可在客户端将文件安装至服务器,不需在服务器本地存储jar文件。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/299.html