weblogic下JDBC调用含有自定义类型参数的存储过程乱码

问题描述

JDBC方式调用oracle存储过程,存储过程有个自定义类型的参数,如下为代码段,标红那行转换后之后,在TOMCAT下面正常,部署到weblogic下面,转换结果为乱码,我们按照网上的说法,替换过两个包:nls_charset12.jar、orai18n.jar,问题仍然没能解决,求大礼解答!ARRAY是oracle.sql.ARRAY这个类。publicStringSp_wms_transfer(StringsBillno,StringcustomerID,StringtransferTime,Stringreason,StringreasonCode,StringsiteNo,StringmdfId,StringmdfDate,String[][]transferTypeArrayList){intrtnCode=-1;StringrtnMsg="";StringTRANSFER_TYPE_ARRAY="SHOP88.TRANSFER_TYPE_ARRAY";Stringprocedure="{callSP_WMS_TRANSFER(?,?,?,?,?,?,?,?,?,?,?)}";try{conn=this.getDBConnection();//获取数据库链接发生异常,直接返回if(null==conn)returnrtnMsg;proc=conn.prepareCall(procedure);proc.setString(1,sBillno);proc.setString(2,customerID);proc.setString(3,transferTime);proc.setString(4,reason);proc.setString(5,reasonCode);proc.setString(6,siteNo);proc.setString(7,mdfId);proc.setString(8,mdfDate);//创建一个数组描述符ArrayDescriptorvarchar2Desc=ArrayDescriptor.createDescriptor(TRANSFER_TYPE_ARRAY,conn);//将字符串数组转换为oralce能识别的数组ARRAYvArray=newARRAY(varchar2Desc,conn,transferTypeArrayList);proc.setArray(9,vArray);proc.registerOutParameter(10,Types.BIGINT);proc.registerOutParameter(11,Types.VARCHAR);proc.execute();rtnCode=proc.getInt(10);rtnMsg=proc.getString(11);if("0".equals(String.valueOf(rtnCode)))rtnMsg="0操作成功(0):"+rtnMsg;elseif("9".equals(String.valueOf(rtnCode)))rtnMsg="9单据已处理(9):"+rtnMsg;elsertnMsg="1操作失败("+String.valueOf(rtnCode)+"):"+rtnMsg;}catch(Exceptione){//记录异常日志StringinterfaceName="sp_wms_transfer_exce";//拼接参数Stringdata="header:"+sBillno+","+customerID+","+transferTime+","+reason+","+reasonCode+","+siteNo+","+mdfId+","+mdfDate+";detail:";for(inti=0;i<transferTypeArrayList.length;i++){data+=("item"+(i+1)+":");for(intj=0;j<transferTypeArrayList[i].length;j++){data+=(transferTypeArrayList[i][j]);data+=(j==transferTypeArrayList[i].length-1)?";":",";}}Stringkey=sBillno;this.recordExceLog(interfaceName,data,key);this.recordExceLog(interfaceName,this.grabExceptionMessage(e),key);e.printStackTrace();}finally{this.closeAll(conn,proc);}returnrtnMsg;}

解决方案

本帖最后由 liyaming_java 于 2014-07-21 18:32:17 编辑
解决方案二:
顶一下,希望能得到高手解答

时间: 2025-01-30 04:26:20

weblogic下JDBC调用含有自定义类型参数的存储过程乱码的相关文章

weblogic下,客户端方式调用axis包访问webserivce接口

问题描述 weblogic下,客户端方式调用axis包访问webserivce接口 weblogic下,客户端方式调用axis包访问webserivce接口,在tomcat下能正常访问,而在weblogic下面就会报以下错误.下面是调用接口代码:public String invokeWebservice(String wsurl String funName String arg)throws MalformedURLException RemoteException { String rtn

Weblogic的JDBC详解(原创)

WebLogic Server 中的JDBC概述  在 WebLogic Server 中,您可以配置数据库连接,方法是先配置 JDBC 数据源和多数据源,然后将这些 JDBC 资源指定到或部署到 WebLogic 域中的服务器或群集. 您配置的每个数据源都包含一个在创建该数据源实例时(在对其进行部署或指定时或在服务器启动时)创建的数据库连接的缓冲池.应用程序会在 JNDI 树中或在本地应用程序上下文 (Java:comp/env) 中查找数据源(具体取决于您如何配置和部署该对象),然后会请求一

WebLogic下JSP连接数据库

js|web|连接数据库 WebLogic下JSP连接数据库  草木瓜 2006-5-26 一.前言     JSP开发,一般来说需要前端开发工具和后台服务.WebLogic是集成了工具和服务的大型系统.    需要重视的是,BEA公司的WebLogic最低要求配置内存512M,即使对服务器参数文件做优化,    仍然不能根本解决问题.    二.安装配置WebLogic     Windows安装没什么好说的.    安装后,WebLogic自动建了三个服务器(workshop,integra

servlet-java web无法调用含有@WebServlet(&amp;amp;quot;&amp;amp;quot;)的java方法

问题描述 java web无法调用含有@WebServlet("")的java方法 我想问一下,我这样要怎么才能调用src里包里的java方法? web.xml: <?xml version=""1.0"" encoding=""UTF-8""?><web-app xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance

java使用jdbc调用存储过程,没有返回结果集。。

问题描述 java使用jdbc调用存储过程,没有返回结果集.. 整个过程是这样的:之前的程序已经上线运行了.后来客户数据库升级,从sqlServer2005升级到sqlServer2008.当然系统也做了相应改动.我们是第三方软件,调用他们的数据库中的存储过程来查询数据.他们升级完系统和数据库之后,我们就查询数据报错.然后最先报的错是驱动版本问题.我就到网上下了sqljdbc4.jar.替换了之后不再报驱动的问题.但是一直无结果集.于是我直接把调用存储过程的sql语句放到数据库中执行.是能查到结

dedecms用keyword标签调用含有某一关键词的文章

前面我们探讨了调用{dede:likewords}为dedecms添加相关搜索词,如果要调用含有某一关键词的文章可以实现吗?比如ytkah的网站有很多文章中含有"微信"的词,那么想在网站首页.频道页.文章页等页面调用含有"微信"这个词的一些文章,怎么调用呢?其实只要几行代码就够了 {dede:arclist row='5' titlelen='36' orderby='pubdate' keyword='微信,公众号' typeid='栏目id'} <li&g

unix-Solaris 10 写一个脚本,在atc用户下,调用该脚本,执行poweroff命令

问题描述 Solaris 10 写一个脚本,在atc用户下,调用该脚本,执行poweroff命令 Solaris 10 写一个脚本,在atc用户下,调用该脚本,执行poweroff命令 解决方案 实现一个脚本,然后atc用户执行 解决方案二: 实现一个脚本,然后atc用户执行

在VC 6.0下如何调用Delphi开发的进程内COM

源代码包中共有两个zip文件,其中DelphiCallVCCOM.zip为Delphi调用VC的COM组件,VCCallDelphiCOM.zip为VC调用Delphi的COM组件 因为本人的语言水平很差,考大学时150的总分,我考了个60分.外语也是,初中及格过一次,会考及格过一次.其它的时间好像从没有及格过.所以我不写文章,因我一百字的文章给我写,至少要出八九个错别字.哈哈-.真是个马大哈.你别说我还真的姓马.所以下面的文章中有错误之处,请你老人家多多理解.谁叫你看我的文章了的.下面就谈正事

JDBC调用MySQL5存储过程

一.环境 MySQL5.1 mysql-connector-java-5.1.10 jdk1.5 表 create table user ( id int(11) not null auto_increment, name varchar(50) not null, pswd varchar(50) default null, pic longblob, remark longtext, primary key (id) ); 二.写存储过程 DELIMITER $ DROP PROCEDURE