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(?) }";
/**
Ïà¹ØÎĵµ£º
Oracle ÊÇÒ»¸öÅÓ´óµÄϵͳ£¬ÀïÃæµÄ֪ʶµãºÜ¶à£¬ÔÚѧϰµÄʱºò£¬¿´µ½Ò»Ð©ÖªÊ¶µã£¬¾ÍÌùÁËÏÂÀ´£¬¾¡²»ÖªÖÐÌùÁËÕâô¶à£¬¾ÍÏÈ×ö¸öС½á°É¡£ ÀïÃæÓеÄ֪ʶµãÒѾµ¥¶ÀÄóöÀ´Ð´³Éµ¥ÆªµÄblog(http://blog.csdn.net/tianlesoftware)ÁË¡£ÓеĻ¹Ã»ÓнøÐÐÕûÀí¡£ ºÃ¼ÇÐÔ²»ÈçÀñÊÍ·£¬²»¹ýÎÒÓõIJ»ÊDZʡ£ ^_^ ......
Âß¼ÉÏ£º
Single column µ¥ÐÐË÷Òý
Concatenated ¶àÐÐË÷Òý
Unique ΨһË÷Òý
NonUnique ·ÇΨһË÷Òý
Function-basedº¯ÊýË÷Òý
Domain ÓòË÷Òý
ÎïÀíÉÏ£º
Partitioned ·ÖÇøË÷Òý
NonPartitioned ·Ç·ÖÇøË÷Òý
B-tree£º
Normal Õý³£ÐÍBÊ÷
Rever Key ·´×ªÐÍBÊ÷
Bitmap λͼË÷Òý
Ë÷Òý½á¹¹£º
B-tree£º
ÊʺÏÓë´óÁ¿µÄÔö¡ ......
ÔÚOracle¹ØÓÚʱ¼äÊôÐԵĽ¨±í
Example:
create table courses(
cid varchar(20) not null primary key,
cname varchar(20) not null,
ctype integer,
ctime date DEFAULT SYSDATE,
cscore float not null
)
insert into courses values('ss01','java',0,TO_DATE('2009-8-28','yyyy-mm-dd'),94)
insert into course ......
ΪÕâЩÓû§ÃûÉèÖÃ×㹻ǿ׳µÄ¿ÚÁî»òËø¶¨ÎÞÓõÄĬÈÏÓû§¡£
SQLÓï¾äÐ޸ģº
Á¬½ÓÖÁOracleºóʹÓÃÈçÏÂÃüÁîÐ޸ĿÚÁî:
alter user system£¨Óû§Ãû£© identified by manager£¨ÃÜÂ룩;
Á¬½ÓÖÁOracleºóʹÓÃÈçÏÂÃüÁîËø¶¨Õ˺Å:
alter user test£¨Óû§Ãû£© account lock;
ͼÐδ°¿ÚÐ޸ģº
Oracle·þÎñopenviewÉϵÄÓû§£ºSCOT ......