1.调用函数

{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}

{call <procedure-name>[(<arg1>,<arg2>, ...)]}*/

public int testFunction() {

String sql = "{?= call cal_add(?, ?)}";

conn = DBHelper.getOracleConnection();

int r = -1;

try {

cs = conn.prepareCall(sql);

cs.registerOutParameter(1, OracleTypes.NUMBER);

cs.setInt(2, 5);

cs.setInt(3, 7);

cs.execute();

r = cs.getInt(1);

} catch (SQLException e) {

e.printStackTrace();

}

DBHelper.destroy(conn, cs, rs);

return r;

}

2. 调用存储过程

public void testProcedure() {

String sql = "{call myprowithout(?,?,?)}";

conn = DBHelper.getOracleConnection();

try {

cs = conn.prepareCall(sql);

cs.setInt(1, 109);

cs.registerOutParameter(2, OracleTypes.VARCHAR);

cs.registerOutParameter(3, OracleTypes.VARCHAR);

cs.execute();

System.out.println(cs.getString(2));

System.out.println(cs.getString(3));

} catch (SQLException e) {

e.printStackTrace();

}

DBHelper.destroy(conn, cs, rs);

}

3.调用带游标的存储过程

public void testProcedureWithCursor() {

String sql = "{call print_stu.put_stuinfo(?,?)}";

conn = DBHelper.getOracleConnection();

try {

cs = conn.prepareCall(sql);

cs.setInt(1, 95031);

cs.registerOutParameter(2, OracleTypes.CURSOR);

cs.execute();

OracleCallableStatement ocs = (OracleCallableStatement)cs;

rs = ocs.getCursor(2);

while(rs.next()) {

System.out.print(rs.getString("sno")+"\t");

System.out.print(rs.getString("sname")+"\t");

System.out.print(rs.getString("ssex")+"\t");

System.out.print(rs.getDate("sbirthday")+"\t");

System.out.println(rs.getInt("class"));

}

} catch (SQLException e) {

e.printStackTrace();

}

DBHelper.destroy(conn, cs, rs);

}

java调用数据库中的函数和存储过程的更多相关文章

  1. java中调用数据库中的存储过程和函数

    public static void main(String[] args)    {         Connection conn =getConnection(url,user, pwd);   ...

  2. mysql中的函数与存储过程

    mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...

  3. 在VS2012中采用C++中调用DLL中的函数 (4)

    这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...

  4. 在C++中调用DLL中的函数 (3)

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  5. 在C++中调用DLL中的函数 (2)

    应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息. Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin. ...

  6. 在C++中调用DLL中的函数

    如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...

  7. 【原创】在VS2012中采用C++中调用DLL中的函数(4)

    这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...

  8. 在C++中调用DLL中的函数(3)

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  9. 在C++中调用DLL中的函数(2)

    本文转自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL ...

随机推荐

  1. js+css实现点击回到顶部的效果(最低兼容至ie7)

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. SQL在Oracle内部的具体处理流程

         下图显示了SQL在Oracle内部处理的一般阶段:解析.优化.产生行源和执行.数据库可能会忽略某些步骤,这取决于具体的语句.                                 ...

  3. python实现不同条件下单据体的颜色不一样,比如直接成本分析表中关闭的细目显示为黄色

    #引入clr运行库 import clr #添加对cloud插件开发的常用组件的引用 clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee ...

  4. Win10系统下插入耳机前面板无声后面板有声的处理

    问题描述: 当耳机插入后面板绿色口(注意:耳机扬声器为绿色口,红色为话筒麦克风:前后面板一样):可以听到声音,但是转到前面板插入后,无声音:调出声音面板发现声音可随音度波动 处理步骤: 1.保证插牢接 ...

  5. Thymeleaf运算符和表达式

    字符串拼接 方式一: <span th:text="'当前是第'+${page}+'页 ,共'+${page}+'页'"></span> 方式二: 使用&q ...

  6. HashMap对象转换为JavaBean对象

    问题: 在日常代码中,使用 spring包中的 BeanUtils.copyProperties(source,target),可以将A对象的属性复制到B对象中,但是有个问题 无法将HashMap中的 ...

  7. JAVA对象序列化和反序列化学习

    JAVA序列化就是将JAVA对象转化为字节序列的过程,而JAVA反序列化就是将字节序列转化为JAVA对象的过程. 这一过程是通过JAVA虚拟机独立完成,所以一个对象序列化后可以在任意时间和任意机器上反 ...

  8. glibc2.22

                 

  9. tf.reshape

    tf.reshape(tensor, shape, name=None) 其中,tensor是向量,或者说矩阵 shape是转换后的向量,或者转换后的矩阵形状 [2,1]转换成二行一列 [2,-1]转 ...

  10. leetcode69. x 的平方根 🌟

    题目: 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...