博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#/java 执行oracle package
阅读量:4630 次
发布时间:2019-06-09

本文共 3549 字,大约阅读时间需要 11 分钟。

使用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 = 50                    };                    var p2 = new OracleParameter("minrow", OracleType.Number)                    {                        Direction = ParameterDirection.Input,                        Value = 10                    };                    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();        }    }}

 

转载于:https://www.cnblogs.com/blackice/p/5663643.html

你可能感兴趣的文章
当前上下文中不存在viewbag
查看>>
Android拷贝工程不覆盖原工程的配置方法
查看>>
linux安装配置postgres及使用dblink
查看>>
ApacheBench(ab)使用详解
查看>>
SSH框架搭建笔记
查看>>
nginx语法
查看>>
存储过程和函数 PROCEDURE & FUNCTION
查看>>
笔试真题解析 ALBB-2015 算法project师实习生机试
查看>>
配置hadoop集群一
查看>>
SQL练习
查看>>
Python之迭代器,生成器与装饰器
查看>>
eclipse 出现user operation is waiting
查看>>
microsoft 为microbit.org 设计的课程
查看>>
calico
查看>>
给iframe绑定事件
查看>>
创建一个没有边框的并添加自定义文字的UISegmentedControl
查看>>
IOS沙盒Files目录说明和常用操作
查看>>
linxu passwd 给linux用户设置密码 命令
查看>>
mongodb的shell命令
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>