ORACLE ±íº¯Êý
´Óoracle 9i ¿ªÊ¼£¬ÌṩÁËÒ»¸ö½Ð×ö“¹ÜµÀ»¯±íº¯Êý”µÄ¸ÅÄ¿ÉÒÔÀûÓùܵÀ»¯À´·µ»Ø±íº¯Êý¡£
µ«ÕâÖÖÀàÐ͵ĺ¯Êý£¬±ØÐë·µ»ØÒ»¸ö¼¯ºÏÀàÐÍ£¬ÇÒ±êÃ÷ pipelinedÒÔ¼°²»ÄÜ·µ»Ø¾ßÌå±äÁ¿£¬¶øÊÇÒÔÒ»¸ö¿Õ return ·µ»Ø!
Õâ¸öº¯ÊýÖУ¬Í¨¹ý pipe row () Óï¾äÀ´ËͳöÒª·µ»ØµÄ±íÖеÄÿһÐÐ
ÔÚµ÷ÓÃÕâ¸öº¯ÊýµÄʱºò£¬Í¨¹ý table() ¹Ø¼ü×ְѹܵÀÁ÷·ÂÕæÎªÒ»¸öÊý¾Ý¼¯!
¼ûÏÂÃæÊ¾Àý:
1¡¢½¨Á¢Ò»¸öÈýÁеĶÔÏó£º
create or replace type rowType_CustOrd_Line is object(order_no varchar2(12),line_no varchar2(4),rel_no varchar2(4));
2¡¢½¨Á¢table¶ÔÏó
create or replace type tabType_CustOrd_Line is table of rowType_CustOrd_Line;
3¡¢½¨Á¢°üÍ·£º
CREATE OR REPLACE PACKAGE Dj_Test_API IS
module_ CONSTANT VARCHAR2(25) := 'FNDBAS';
lu_name_ CONSTANT VARCHAR2(25) := 'DjTest';
Function Get_Customer_Order_Line(
order_no_ IN VARCHAR2
)
return tabType_CustOrd_Line pipelined;
END Dj_Test_API;
/
4¡¢½¨Á¢°üÌ壺
CREATE OR REPLACE PACKAGE BODY Dj_Test_API IS
Function Get_Customer_Order_Line(
order_no_ IN VARCHAR2
)
return tabType_CustOrd_Line pipelined as row_ rowType_CustOrd_Line;
begin
for custOrdRow in (select t.order_no, t.line_no,t.rel_no
from customer_order_line t
where t.order_no=order_no_) loop
row_ := rowType_CustOrd_Line(custOrdRow.order_no, custOrdRow.line_no,custOrdRow.rel_no);
pipe row (row_);
end loop;
return;
END Get_Customer_Order_Line;
------------------------------------------------------------------------
END Dj_Test_API;
/
5¡¢ÀûÓà table() ¹Ø¼ü×ְѹܵÀÁ÷·ÂÕæÎªÒ»¸öÊý¾Ý¼¯:
select * from table(Dj_Test_API.Get_Customer_Order_Line('M200800177'
Ïà¹ØÎĵµ£º
OracleÊý¾Ýµ¼Èëµ¼³öimp/exp¾ÍÏ൱ÓÚoracleÊý¾Ý»¹ÔÓ뱸·Ý¡£expÃüÁî¿ÉÒÔ°ÑÊý¾Ý´ÓÔ¶³ÌÊý¾Ý¿â·þÎñÆ÷µ¼³öµ½±¾µØµÄdmpÎļþ£¬impÃüÁî¿ÉÒÔ°ÑdmpÎļþ´Ó±¾µØµ¼Èëµ½Ô¶´¦µÄÊý¾Ý¿â·þÎñÆ÷ÖС£ ÀûÓÃÕâ¸ö¹¦ÄÜ¿ÉÒÔ¹¹½¨Á½¸öÏàͬµÄÊý¾Ý¿â£¬Ò»¸öÓÃÀ´²âÊÔ£¬Ò»¸öÓÃÀ´ÕýʽʹÓá£
Ö´Ðл·¾³£º¿ÉÒÔÔÚSQLPLUS.EXE»òÕßDOS£¨ÃüÁîÐУ©ÖÐÖ´ÐУ¬
......
Oracle Enterprise Manager Oracle EMÊÇÓû§°²×°Oracle£¬´´½¨ÁËÊý¾Ý¿â²¢ÅäÖúÃÍøÂç×ÊÔ´ºó£¬Oracle¸½´ø°²×°µÄÒ»¸öÊý¾Ý¿â¹ÜÀíÈí¼þ¡£Í¬Ê±£¬EMÒ²Ìṩ¶ÔÐÔÄܵ÷ÊÔÓаïÖúµÄ¹¤¾ß£¬ÈçSQL*LoaderºÍRecovery Manager £¨RMAN£©µÈ¡£ Oracle Diagnostics Pack (ODP) ODPÓ¦¸ÃËãÊÇOracleÊý¾Ý¿â»·¾³ÐÔÄܵ÷ÊÔµÄ×îÖ÷ÒªºÍ×îÓÐЧµÄ¹¤¾ß£¬ËüÌá¹ ......
--´´½¨´¥·¢Æ÷£¨Ðм¶´¥·¢Æ÷£©
create or replace trigger tri_update_emp_bak
after update
on emp_bak
for each row --ÿ¸üÐÂÒ»ÐÐ ¾Í´¥·¢Ò»´Î
begin
--oracle ÀïÃæ ¶Ô´¥·¢Æ÷ Ò²ÌṩÁËÌØÊâµÄ¶ÔÏó :NEW :OLD À´·ÃÎÊ ¸üÐÂǰºóµÄÊý¾Ý
dbms_output.put_line('¸üкó' || :NEW.sal);
dbms_outpu ......
Çé¿öÃèÊö£º°²×°Ê±Ñ¡ÔñµÄ×Ô¶¯°²×°£¬ÓÉÓÚʱ¼ä¾ÃÔ¶Íü¼ÇÓû§Ãû¡¢ÃÜÂëÁË£¬µ¼ÖÂÏÖÔÚÊÔÁ˼¸¸öĬÈϵÄÓû§ÃûÃÜÂëºó£¬¶¼ÌáʾÎÞЧµÄÓû§Ãû¡¢ÃÜÂë¡£
½â¾ö·½·¨£ºÆô¶¯SQLPLUS£¬ÌáʾÊäÈëÓû§Ãû£¬È»ºóÊäÈësqlplus/as sysdba£¬ÃÜÂëΪ¿Õ¡£ÌáʾÁ¬½Óµ½ÐÅÏ¢£¬Á¬½Ó³É¹¦£¡
Ö´ÐÐalter user sys identified by ÃÜÂë;
ÉèÖóɹ¦£¡
ÏÖÔÚ¿ÉÒÔ´ÓEnterp ......