使用pl/sql创建package

CREATE OR REPLACE PACKAGE FirstPage is

 type outlist is ref cursor;

 Procedure p_get( maxrow in number, minrow in number, return_list out outlist );

 function f_get(str in varchar2)return varchar2;

END FirstPage;
CREATE OR REPLACE package body FirstPage is 

Procedure p_get( maxrow in number, minrow in number, return_list out outlist )
is
begin
open return_list for
select * from (select a.*,rownum rnum from IPS_WL_INNOLUXPN a where rownum<=maxrow) where rnum >=minrow;
end ; Function f_get(str in varchar2)
return varchar2
is
str_temp varchar2(200) := 'Good Luck!';
begin
str_temp := str_temp || str;
return str_temp;
end f_get; end FirstPage;

JAVA部分

新建 Java Project

添加包 demo

添加一个class,勾上生成Main函数

代码如下

package demo;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException; public class test { public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.15.50:1521:orcl","aaaa","aaaa");
String sqlStr = "{call FIRSTPAGE.p_get(?,?,?)}";
CallableStatement cs = conn.prepareCall(sqlStr); cs.setInt(1,50);
cs.setInt(2,10); cs.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR); cs.execute();
ResultSet rs = (ResultSet)cs.getObject(3);
int rowCount= 0;
while(rs.next()) { System.out.println(rs.getString(7));
}
System.out.print(rowCount);
} }

C#部分

using System;using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{ string connString = "User ID=aaaa;Password=aaaa;Data Source=aaq";
var conn = new OracleConnection(connString);
try
{
conn.Open();
using (var cmd = new OracleCommand("FIRSTPAGE.p_get", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
var p1 = new OracleParameter("maxrow", OracleType.Number)
{
Direction = ParameterDirection.Input,
Value =
};
var p2 = new OracleParameter("minrow", OracleType.Number)
{
Direction = ParameterDirection.Input,
Value =
};
var p3 = new OracleParameter("return_list", OracleType.Cursor)
{
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3); var dt = new DataTable();
var da = new OracleDataAdapter(cmd);
da.Fill(dt);
Console.WriteLine("All rows : {0}",dt.Rows.Count);
}
Console.WriteLine(conn.State.ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
finally
{
conn.Close();
}
Console.Read();
}
}
}

C#/java 执行oracle package的更多相关文章

  1. Java调用Oracle存储Package

    Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...

  2. Java备份Oracle数据库

    Java备份Oracle数据库 Java线程.Process.ProcessBuilder 2010 年 6 月 20 日 文章内容描述了使用Java执行外部Oracle导出命令备份数据库功能的示例, ...

  3. Java创建Oracle数据库表

    我们通常只用java执行DML(即:insert, update, delete, select)操作,很少用来执行DDL(create, drop, alert)操作.今天试了下如何用java来创建 ...

  4. Oracle Package的全局变量与Session

    Oracle Package的全局变量与Session2012-07-26 aaie_ 阅 3595 转 10简单讲,同一个session下pageckage中的全局变量时公共的,会导致冲突.以下是一 ...

  5. Java调用oracle存储过程通过游标返回临时表数据

    注:本文来源于 <  Java调用oracle存储过程通过游标返回临时表数据   > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结 ...

  6. Java连接Oracle数据库的三种连接方式

    背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询. SQL语句的话,这里我就不多讲了,感觉和其他的数据库(MySQ ...

  7. Java连接Oracle数据库常用方法

    JDBC的六大步骤: 注册驱动 获取连接 获取执行sql语句对象 执行sql语句 处理结果集 关闭资源 oracle URL: jdbc:oracle:thin:@localhost:1521:SID ...

  8. 用java 调用oracle存储过程总结

    SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...

  9. Java操作Oracle

    public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...

随机推荐

  1. Linux系统(Ubuntu/Debian/RedHat/CentOS)超级简单的samba配置文件smb.conf

    1.超简单的smb.conf 该配置文件对Ubuntu和CentOS都好用. #============== Global Settings ============== [global] ## Br ...

  2. Shell脚本中调用另外一个脚本的方法

    (转载): 在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh:这三种方法有什么不同呢?我 ...

  3. Makefile 8——使用依赖关系文件

    Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令.在Makefile中,可以通过include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中 ...

  4. TOTP:Time-based One-time Password Algorithm(基于时间的一次性密码算法)

    TOTP:Time-based One-time Password Algorithm(基于时间的一次性密码算法) TOTP - Time-based One-time Password Algori ...

  5. HTTP Header User-Agent的ctf

    HAHA浏览器分值: 200 据说信息安全小组最近出了一款新的浏览器,叫HAHA浏览器,有些题目必须通过HAHA浏览器才能答对.小明同学坚决不要装HAHA浏览器,怕有后门,但是如何才能过这个需要安装H ...

  6. java 读取Zip文件进行写入

    直接读取ZIp文件读取写入到别的文件中. package jp.co.misumi.mdm.batch; import java.io.BufferedReader; import java.io.F ...

  7. 扩展KMP - HDU 4333 Revolving Digits

    Revolving Digits Problem's Link Mean: 给你一个字符串,你可以将该字符串的任意长度后缀截取下来然后接到最前面,让你统计所有新串中有多少种字典序小于.等于.大于原串. ...

  8. EasyUI 表单 tree

    第一步:创建HTML标记 <divid="dlg"style="padding:20px;">     <h2>Account Info ...

  9. Javascript代码执行过程-《悟透Javascript》笔记

    本文摘录自李战老师<悟透Javascript>一书的部分章节,为适应博客发表作了一点点修改. 1) 预编译分析. JavaScript执行引擎将所有定义式函数直接创建为作用域上的函数变量, ...

  10. jQuery替换内容

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...