oracle°üºÍREF CURSOR
Ê×ÏÈ£¬ÐèÒªÖØÐÂÕûÀíÒ»ÏÂÏà¹Ø¸ÅÄoracleÊý¾Ý¿âÖк¯ÊýµÄ×÷Óã¬ÊÇÖ»Äܱ»±ðÈ˵÷Ó㬴洢¹ý³Ì¿ÉÒÔµ¥¶ÀÖ´ÐУ¬²¢ÇÒ¿ÉÒÔµ÷Óô洢¹ý³Ì£¬¶ø°üµÄ×÷Óðü¿ÉÒÔ½«ÈκγöÏÖÔÚ¿éÉùÃ÷µÄÓï¾ä ( ¹ý³Ì , º¯Êý , Óαê , Óαê , ÀàÐÍ , ±äÁ¿ ) ·ÅÓÚ°üÖÐ , Ï൱ÓÚÒ»¸öÈÝÆ÷ . ½«ÉùÃ÷Óï¾ä·ÅÈë°üÖеĺô¦ÊÇ : Óû§¿ÉÒÔ´ÓÆäËû PL/SQL ¿éÖжÔÆä½øÐÐÒýÓà , Òò´Ë°üΪ PL/SQL ÌṩÁËÈ«¾Ö±äÁ¿£¬°ü·ÖΪ°üÍ·ºÍ°üÌ壬°üÍ·ÏȱàÒëͨ¹ýºó²ÅÄܱàÒë°üÌå¡£
°üÍ·µÄ´´½¨£º
1) °üÍ· :
Óï·¨¸ñʽ :
CREATE OR REPLACE PACKAGE package_name /* °üÍ·Ãû³Æ */
IS|AS
pl/sql_package_spec /* ¶¨Òå¹ý³Ì , º¯ÊýÒÔ¼°·µ»ØÀàÐÍ , ±äÁ¿ , ³£Á¿¼°Êý¾ÝÀàÐͶ¨Òå */
¶¨Òå°üÍ·Ó¦µ±×ñÑÒÔÏÂÔÔò :
1) °üÔªËØλÖÿÉÒÔÈÎÒâ°²ÅÅ . È»¶øÔÚÉùÃ÷²¿·Ö , ¶ÔÏó±ØÐëÔÚÒýÓÃÇ°½øÐÐÉùÃ÷ .
2) °üÍ·¿ÉÒÔ²»¶ÔÈκÎÀàÐ͵ÄÔªËؽøÐÐ˵Ã÷ . ÀýÈç , °üÍ·¿ÉÒÔÖ»´ø¹ý³ÌºÍº¯Êý˵Ã÷Óï¾ä , ¶ø²»ÉùÃ÷ÈκÎÒì³£ºÍÀàÐÍ .
3) ¶Ô¹ý³ÌºÍº¯ÊýµÄÈκÎÉùÃ÷¶¼±ØÐëÖ»¶Ô×Ó³ÌÐòºÍÆä²ÎÊý½øÐÐÃèÊö , ²»ÄÜÓÐÈκδúÂëµÄ˵Ã÷ , ´úÂëµÄʵÏÖÖ»ÄÜÔÚ°üÌåÖгöÏÖ . Ëü²»Í¬ÓÚ¿éÉùÃ÷ , ÔÚ¿éÉùÃ÷ÖÐ , ¹ý³ÌºÍº¯ÊýµÄ´úÂë¿Éͬʱ³öÏÖÔÚÉùÃ÷²¿·Ö .
2. °üÌå :
Óï·¨¸ñʽ :
CREATE OR REPLACE PACKAGE BODY package_name/* °üÃû±ØÐëÓë°üÍ·µÄ°üÃûÒ»Ö */
IS | AS
pl/sql_package_body /* Óαê , º¯Êý , ¹ý³ÌµÄ¾ßÌ嶨Òå */
°üÌåÊÇÓë°üÍ·Ï໥¶ÀÁ¢µÄ , °üÌåÖ»ÄÜÔÚ°üÍ·Íê³É±àÒëºó²ÅÄܽøÐбàÒë . °üÌåÖдøÓаüÍ·ÖÐÃèÊöµÄ×Ó³ÌÐòµÄ¾ßÌåʵÏֵĴúÂë¶Î . ³ý´ËÖ®Íâ , °üÌ廹¿ÉÒÔ°üÀ¨¾ßÓаüÌåÈËÈ«¾äÊôÐԵĸ½¼ÓÉùÃ÷²¿·Ö , µ«ÕâЩ¸½¼ÓÉùÃ÷¶ÔÓÚ°üÍ·ÊDz»¼ûµÄ .
Demo:
****************
*°ü
****************
create or replace package mypack
as
type mytype is ref cursor return emp%rowtype; --ÉùÃ÷REFÓαê
function myemp(dno number) return mytype;
end;
****************
*body
****************
create or replace package body mypack
as
function myemp(dno
Ïà¹ØÎĵµ£º
Oracle lessons list:
Title ......
´´½¨ÁÙʱ±í¿Õ¼ä
CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
´´½¨Óû§±í¿Õ¼ä
CREATE TABLESPACE test_data
LOGGING
DATAFILE 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TE ......
OracleÖÐÌṩһϵÁÐÀàÐÍ£¬Ã¿¸öÀàÐ͵ÄÌصãÈçÏ£º
char£º´æ´¢¹Ì¶¨³¤¶ÈµÄ×Ö·û£¬Èç¹û×Ö·û³¤¶È²»¹»»áÔÚÓұ߲¹¿Õ¸ñ¡£±ÈÈ磺name char£¨10£©£¬µ±¸øname¸³ÖµÎª'zhangsan'ʱ»áÔÚÓұ߲¹³ä2¸ö¿Õ¸ñ¡£charÀàÐ͵ÄÈÝÁ¿Îª1¡«2000B£¬Ã»ÓÐÖ¸¶¨ÔòĬÈϳ¤¶ÈΪ1¡£
varchar2£º´æ´¢³¤¶È¿É±äµÄ×Ö·û£¬ºÍcharÀàÐ͵IJ»Í¬£¬Ëü²»»á×Ô¶¯²¹³ä¿Õ¸ñ£¬ÇÒ¶¨ÒåÊ ......
oracle ´æ´¢¹ý³ÌµÄ»ù±¾Óï·¨
1.»ù±¾½á¹¹
CREATE OR REPLACE PROCEDURE ´æ´¢¹ý³ÌÃû×Ö
(
²ÎÊý1 IN NUMBER,
²ÎÊý2 IN NUMBER
) IS
±äÁ¿1 INTEGER :=0;
±äÁ¿2 DATE;
BEGIN
END ´æ´¢¹ý³ÌÃû×Ö
2.SELECT INTO STATEMENT
½«select²éѯµÄ½á¹û´æÈëµ½±äÁ¿ÖУ¬¿ÉÒÔͬʱ½«¶à¸ö ......
´æ´¢¹ý³Ì °üº¬Èý²¿·Ö£º ÉùÃ÷£¬Ö´Ðв¿·Ö£¬Òì³£¡£
¿ÉÒÔÓÐÎÞ²ÎÊý³ÌÐòºÍ´ø²ÎÊý´æ´¢¹ý³Ì¡£
Î޲γÌÐòÓï·¨
1 create or replace procedure NoParPro
2 as ;
3 begin
4&n ......