下载更新之后,自动安装apk文件
2014-04-04 11:13
423 查看
项目需要,并返回结果集和另一个状态,此前未使用过存储过程,故作以记录:
sql代码:
jsp代码(只摘录了核心代码):
sql代码:
-- Create table create table JYXT_HDBM ( ID VARCHAR2(50), MID VARCHAR2(50), ORDERNO VARCHAR2(50), HDTYPE VARCHAR2(2), MONEY NUMBER default 0.0, PAYTYPE VARCHAR2(2), TIME DATE, STATUS VARCHAR2(2), REMARKS VARCHAR2(200) ) INSERT INTO jyxt_hdbm (ID, mid, orderno, hdtype, money, paytype, TIME, status, remarks) VALUES (v_id, v_mid, v_orderno, v_hdtype, v_money, v_paytype, v_time, v_status, v_remarks); --创建包,声明游标、存储过程 create or replace package users_package is type search_results is ref cursor; PROCEDURE users_proc(results_out out search_results, hdtype IN OUT VARCHAR); end users_package; --创建(实例化)存储过程 create or replace package body users_package is procedure users_proc (results_out out search_results, hdtype IN OUT VARCHAR) is begin dbms_output.put_line('start....'); if hdtype is not null then open results_out for select t.orderno,t.money,t.hdtype FROM jyxt_hdbm t WHERE t.hdtype=hdtype; hdtype:='单项活动'; else open results_out for select t.orderno,t.money,t.hdtype FROM jyxt_hdbm t; hdtype:='所有活动'; end if; dbms_output.put_line('end!!!!!'); END users_proc; end users_package; ---pl sql 测试调用 declare cur_search_results jy.users_package.search_results; CURSOR myCur is select t.orderno,t.money,t.hdtype FROM jyxt_hdbm t; hdbmrow myCur%ROWTYPE ; --要保证行里的字段与游标里的行字段一致 hdtype VARCHAR(10); BEGIN hdtype:=''; jy.users_package.users_proc(cur_search_results, hdtype); -- OPEN cur_search_results; dbms_output.put_line(hdtype); LOOP FETCH cur_search_results into hdbmrow; --游标中查询出来的一行into进定义的变量hdbmrow中 EXIT WHEN cur_search_results%NOTFOUND; dbms_output.put_line(hdbmrow.orderno||' ' ||hdbmrow.money||' ' ||hdbmrow.hdtype); END LOOP; CLOSE cur_search_results; END;
jsp代码(只摘录了核心代码):
try{ String type = ToolKit.dealNull(request.getParameter("type")); DataSource ds = GlobalParameter.getDataSource_User(); Connection conn = ds.getConnection(); String sql = "{call users_package.users_proc(?, ?)}"; CallableStatement cstmt = conn.prepareCall(sql); cstmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); /* 第二个参数,定义了in out类型的参数,所以做以下设置*/ cstmt.setString(2,type); cstmt.registerOutParameter(2, Types.VARCHAR); cstmt.execute(); ResultSet rs = null; //获取游标结果集 rs = ((oracle.jdbc.OracleCallableStatement)cstmt).getCursor(1); //获取字符弄返回参数 String str = cstmt.getString(2); out.println("---------"+str+"---------</br>"); //处理返回游标 while(rs.next()){ out.print(" 订单号:"+rs.getString (1)); out.print(" 金额:"+rs.getDouble(2)); out.print(" 类型:"+rs.getString (3)); out.println("</br>"); } }catch(Exception e){ System.out.println("error:"+e.toString()); }
相关文章推荐
- 关于android主线程不能访问网络异常NetworkOnMainThreadException
- 重新配置Oracle企业管理工具 Orcale Enterprise Manager (OEM)
- 在linux挂载windows共享Mount CIFS
- JAVA test_windowClosing
- HDFS再平衡器
- 实用的SharePoint 2010 品牌化和自定义
- VC中的字符串表示方法
- Python编程时.py与.pyc文件的介绍(区别)
- MySql安装后在服务管理器里边找不到MySql服务项的解决办法
- 安装 Joomla 一直卡在数据库表创建中,怎么办?
- 【oracle教程】Starting with Oracle Warehouse Builder 11g Release 1
- [解惑]JavaScript事件机制
- 实用的SharePoint 2010 品牌化和自定义
- 数据访问技术介绍
- js 显示base64编码的二进制流网页图片
- Linux中10个你不知道的命令补齐技巧
- 关于字符编码
- Oracle11g 安装教程
- android 文件转base64,Base64转文件
- iOS设置UINavigationBar的背景颜色或背景图片