操作Oracle的代码

package demo;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

import oracle.jdbc.OracleCallableStatement;

import org.junit.Test;

public class Demo {
 @Test
 public void testCursor() throws Exception{
  Class.forName("oracle.jdbc.OracleDriver");
  
  String url ="jdbc:oracle:thin:@localhost:1521:orcl";
  String user = "scott";
  String password  = "tiger";
  //调用包下的存储过程
  String sql = "{call mypackage.queryEmp(?,?)}";
  
  Connection conn = DriverManager.getConnection(url, user, password); 
  CallableStatement call = conn.prepareCall(sql);
  
  //参数赋值
  call.setInt(1, 10);
  call.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
  //执行
  call.execute();
  
  //取出结果
  //需要将call转换成OracleCallableStatement
  ResultSet rs = ((OracleCallableStatement)call).getCursor(2);
  while(rs.next()){
   System.out.println(rs.getObject(1) + "  " + rs.getObject(2));
  }
  
  rs.close();
  call.close();
  conn.close();
 }
 
 
 
 @Test
 public void testQueryEmp2() throws Exception{
  //注册驱动
  Class.forName("oracle.jdbc.OracleDriver");
  
  String url ="jdbc:oracle:thin:@localhost:1521:orcl";
  String user = "scott";
  String password  = "tiger";
  String sql = "{?=call queryEmp2(?,?,?)}";
  
  Connection conn = DriverManager.getConnection(url, user, password); 
  CallableStatement call = conn.prepareCall(sql);
  
  //参数赋值
  call.registerOutParameter(1, oracle.jdbc.OracleTypes.NUMBER);
  call.setInt(2, 7839);
  call.registerOutParameter(3, oracle.jdbc.OracleTypes.VARCHAR);
  call.registerOutParameter(4, oracle.jdbc.OracleTypes.NUMBER);
  //执行
  call.execute();
  
  //取结果
  double annalIncome = call.getDouble(1);
  String name = call.getString(3);
  double sal = call.getDouble(4);
  //输出
  System.out.println(name+"  年收入:" + annalIncome + " 月薪:" + sal);
  
  call.close();
  conn.close();
  
 }
 
 @Test
 public void testQueryEmp1() throws Exception{
  //注册驱动
  Class.forName("oracle.jdbc.OracleDriver");
  
  String url ="jdbc:oracle:thin:@localhost:1521:orcl";
  String user = "scott";
  String password  = "tiger";
  String sql = "{call queryEmp1(?,?,?)}";
  
  Connection conn = DriverManager.getConnection(url, user, password);
  CallableStatement call = conn.prepareCall(sql);
  
  //付参数值
  call.setInt(1, 7839);
  //对于out参数
  call.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
  call.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
  
  //执行
  call.execute();
  
  //取结果
  String name = call.getString(2);
  double sal = call.getDouble(3);
  
  System.out.println(name+" " +sal);
  
  //关闭资源
  call.close();
  conn.close();
 }
}

 

 

 

 

 

 

时间: 2024-11-01 06:41:26

操作Oracle的代码的相关文章

Java连接操作Oracle数据库代码详解_java

废话不多说了,直接给大家贴关键代码了,具体代码如下所示: package com.sp.test; import java.sql.*; import java.util.*; public class Text_lianxi extends Thread { public void run() { try { yunxing(); Thread.sleep(10000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.pr

php 操作 Oracle数据代码

提供一款超简单的php  Oracle 数据库 导出代码哦. <?php $conn=OCILogon("用户名","密码","(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=IP)(PORT = 1521))(CONNECT_DATA =(SID=lcx)))"); //$sql="select * from all_tab_columns where table_name='MEMBER'

Php操作oracle数据库指南-本人原创,经验总结,不能不看

oracle|数据|数据库|原创 本人由于工作关系使用Oracle数据库,发现这里用的人不多,但时常发现有人提的关于PHP操作ORACLE数据库的问题得不到回答,我也曾问过几个,但也无人响应,因此决定把本人在工作中积攒起来的一些技巧.经验奉献出来,希望对使用oracle数据库的人有所帮助.一.配置环境:访问Oracle8以上的数据库需要用到Oracle8 Call-Interface(OCI8).这个扩展模块需要Oracle8 的客户端函数库,因此需要你要连接远程Oracle数据库的话,还要装上

php-WCF操作Oracle数据库问题

问题描述 WCF操作Oracle数据库问题 20C 用PHP写了一个调用WCF的程序,WCF可以正常发布,访问老是报错,试了很多种办法都还没有解决..WCF发布后可以正常访问,如下图:然后写了一个PHP调用的程序,如下图所示:打开之后报错,如下图所示..显示的是服务的内部错误,WCF服务的功能为操作Oracle数据库,用OracleClient命名空间,用的是64位的Oracle客户端,以前用32位的Oracle client依然这样宝座,试了网上的各种办法都没有什么用.主要的问题集中在WCF操

JavaScript操作Oracle数据库示例_javascript技巧

我还是IT界的一只小菜鸟,参加工作时间不长,不过凭着自己的一颗好学的心还有自己永不停止的学习脚步,自己在编程方面也是收获颇丰~~ 一直以为JavaScript想和数据库交互必须通过AJAX来调用服务器端代码(C#或JAVA)才行,但最近才发现JavaScript可以直接与数据库进行交互...下面是一个简单的从数据库中调取数据加载到界面的小例子(有关JS操作数据方面的知识大家如有什么好的建议希望您能留下,我们相互学习,共同进步)~~ <!DOCTYPE HTML PUBLIC "-//W3C

使用Enterprise Library操作Oracle的疑点难点总结

我们知道,Microsoft patterns & practices小组开发的Enterprise Library是一款非常好的组件,其有很多个模块,包括数据访问.配置.加密.IOC容器.日志.异常处理等内容,其中数据访问模块是其中非常不错的一个数据访问组件,提供了对各种数据库操作的抽象封装,使用数据访问起来基本上是对各种数据库是透明的,最重要的是,简化了代码,提高了开发效率.本文介绍Enterprise Library中的数据访问模块在操作Oracle过程中的一些经验总结,作为自己和博友做数

操作Oracle数据库实现上传图片到Blob类型的字段出现的问题

oracle|上传|上传图片|数据|数据库|问题 通过使用OleDb操作Oracle数据库,成功实现图片上传到Blob类型的字段,但有时会发生ORA-01036错误的问题,经查询是错误提示为illegal variable name/number,不知道有谁能详细解释illegal variable name/number的意思 Oracle Data Provider for .NETHiI am using ODP.NET (Oracle Data Provider for .NET) in

无法执行添加/移除操作,因为代码元素**是只读的

在vs中,大量添加窗体或者控件后,发现无法由系统IDE自动生成代码,如自动添加按钮响应函数等,rc管理器界面双击按钮添加函数,会出现 提示框 "无法执行添加/移除操作,因为代码元素**是只读的".开始认为可能是对应的.cpp和.h被加了只读属性,后来发现是工程的ncb文件引起的. 解决方案:关闭vs,删除工程对应的.ncb文件,重启vs就好了. 问题原因:NCB是no compile brower的缩写,文件中存放了供ClassView.WizardBar和Component Gall

JAVA连接Oracle的代码

最新做了一个连接Oracle的代码,要配好环境变量: ClassPath=.;E:j2sdk14lib ools.jar;E:oracleora90jdbclibclasses12.zip 测试的电脑已经装好Oracle客户端,而且用SQLplus可以连接上. /* * This sample shows how to list all the names from the EMP table * * It uses the JDBC THIN driver. See the same prog