Java 调用 Oracle 存储过程返回结果集
Oracle 存储过程返回结果集用 ref cursor 实现。
试验步骤如下:
1. 建立 ref cursor 类型和过程
CREATE OR REPLACE PACKAGE types
AS
TYPE ref_cursor IS REF CURSOR;
END;
/
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2),
UPDATED DATE );
/
CREATE OR REPLACE FUNCTION sp_get_stocks(v_price IN NUMBER)
RETURN types.ref_cursor
AS
stock_cursor types.ref_cursor;
BEGIN
OPEN stock_cursor FOR
SELECT ric,price,updated from stock_prices WHERE price < v_price;
RETURN stock_cursor;
END;
2. 用 sqlplus 测试过程
SQL> var results refcursor
SQL> exec :results := sp_get_stocks(20.0)
SQL> print results
3. 从 Java 调用
import java.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
public class JDBCDemo {
/**
* Compile-time flag for deciding which query to use
*/
private boolean useOracleQuery = true;
/**
* Class name of Oracle JDBC driver
*/
private String driver = "oracle.jdbc.driver.OracleDriver";
/**
* Initial url fragment
*/
private String url = "jdbc:oracle:thin:@";
/**
* Standard Oracle listener port
*/
private String port = "1521";
/**
* Oracle style of calling a stored procedure
*/
private String oracleQuery = "begin ? := sp_get_stocks(?); end;";
/**
* JDBC style of calling a stored procedure
*/
private String genericQuery = "{ call ? := sp_get_stocks(?) }";
/
相关文档:
服务端:
package socket;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new Se ......
public static void main(String[] args)
{
InputStream is = CommonUtil.getStream("http://wz.csdn.net/");
String regex = "(?<=href=\")[^\"]*";//查找网页中所 ......
来源:http://www.blogjava.net/lcs868/archive/2008/12/16/246644.html
用java实现对纯真IP数据库的查询,首先到网上下载QQwry.da文件,读取代码如下: 1.IP记录实体类 package com.guess.tools; /** *
* 一条IP范围记录,不仅包括国家和区域,也包括起始IP和结束IP * *
* @author swal ......
1.File类为管理文件和目录提供了方法,其对象表示一个文件或者目录。它提供了若干方法对文件或文件夹进行操作。其中的list()方法和listFiles()方法可以起到定位特定文件的作用。
2.Object类,是所有Java类的祖先,若一个类声明时没有包含extends关键字,则其直接继承于Objetc类。其中有许多重要方法:
equals(),not ......
多态的目的
通过类型转换,把一个对象当作它的基类对象对待。
从相同的基类派生出来的多个派生类可被当作同一个类型对待,可对这些不同的类型进行同样的处理。
这些不同派生类的对象响应同一个方法时的行为是有所差别的,这正是这些相似的类之间彼此区别的不同之处。
动态绑定
将一个方法调用和一个方法主体连接到一起 ......