基于Oracle的存储过程
发布日期:2021-10-03 03:16:56
浏览次数:16
分类:技术文章
本文共 2486 字,大约阅读时间需要 8 分钟。
存储过程oracle代码:
CREATE OR REPLACE PROCEDURE select_pro(tablename in varchar2,
s_count number, e_count number, v_cur out SYS_REFCURSOR) AS v_sql varchar2(1024); BEGIN v_sql:='select t.* from (select rownum r,e.* from ( ' || tablename ||' ) e) t where r between ' || s_count || ' and ' || e_count; OPEN v_cur FOR v_sql; END; //函数做分页用java代码实现 package jdbc; //给test用户下所有的表做分页 import java.sql.*; import java.util.Scanner;public class ConnectionOr5 {
public static CallableStatement cs = null; public static ResultSet rs = null; public static ResultSetMetaData rsm = null; // 没new StringBuffer()对象 public static StringBuffer sbf = new StringBuffer(); public static Scanner sc = new Scanner(System.in);public static void main(String[] args) {
try { // 调用函数 函数名没有写对cs = DriverConnection.driverConnection("test", "test").prepareCall(
"{? = call FUNTION_SELECT(?,?,?) }"); // 注册 cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);System.out.println("请输入表名:");
String str = sc.next(); cs.setString(2, str); System.out.println("请输入初始值:"); int star = sc.nextInt(); System.out.println("请输入结束值:"); int end = sc.nextInt(); cs.setInt(3, star); cs.setInt(4, end); // 忘记更新 cs.executeUpdate(); rs = (ResultSet) cs.getObject(1); rsm = rs.getMetaData(); int count = rsm.getColumnCount(); for (int i = 1; i <= count; i++) { sbf.append(rsm.getColumnName(i)).append("/t").append("/t"); } sbf.append("/n"); while (rs.next()) { for (int i = 1; i <= count; i++) { sbf.append(rs.getString(rsm.getColumnName(i))).append("/t") .append("/t"); } sbf.append("/n"); } System.out.println(sbf); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (cs != null) cs.close(); } catch (SQLException e) { e.printStackTrace(); } } } } 存储过程做分页package jdbc;
import java.sql.*;
import oracle.jdbc.driver.OracleTypes;
public class ConnectionOr4 {
public static CallableStatement call = null; public static ResultSet rs = null; public static void main(String[] args) { try { //調用用过程 call = DriverConnection.driverConnection("test", "test").prepareCall("{call select_pro(?,?,?,?)}"); call.setString(1, "dept"); call.setInt(2, 3); call.setInt(3, 6); //输出参数必须注册 call.registerOutParameter(4, OracleTypes.CURSOR); call.execute(); rs=(ResultSet) call.getObject(4); while(rs.next()){ int deptno=rs.getInt("deptno"); String dname=rs.getString("dname"); String loc=rs.getString("loc"); System.out.println(deptno+"/t"+dname+"/t"+loc); } } catch (SQLException e){ e.printStackTrace(); } } }转载地址:https://blog.csdn.net/KANGBROTHER/article/details/6211059 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月26日 00时27分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Unity 5 AudioMixer
2019-04-27
Unity 代码混淆: CodeGuard的使用
2019-04-27
UGUI 列表循环使用
2019-04-27
使用命令行运行unity并执行某个静态函数(运用于命令行打包和批量打包)
2019-04-27
web.py框架
2019-04-27
web.py学习笔记
2019-04-27
python的代码缩进
2019-04-27
A* Pathfinding Project (Unity A*寻路插件) 使用教程
2019-04-27
bash学习笔记
2019-04-27
sqlite学习
2019-04-27
手把手教你实现Unity与Android的交互
2019-04-27
手把手教你使用Unity的Behavior Designer
2019-04-27
Unity3D摄像机裁剪——NGUI篇
2019-04-27
lua深拷贝一个table
2019-04-27
app运行提示Unable to Initialize Unity Engine
2019-04-27
spring boot 与 Ant Design of Vue 实现修改按钮(十七)
2019-04-27
spring boot 与 Ant Design of Vue 实现删除按钮(十八)
2019-04-27
spring boot 与 Ant Design of Vue 实现新增角色(二十)
2019-04-27
spring boot 与 Ant Design of Vue 实现修改角色(二十一)
2019-04-27