Oracleѧϰ±Ê¼ÇÖ®´æ´¢¹ý³ÌÓ뺯Êý
PL/SQLÊǶÔOracleÊý¾Ý¿â½øÐвÙ×÷µÄÒ»ÖÖ¹ý³ÌÐÔ±à³ÌÓïÑÔ£¬Ëü¿ÉÒÔÔÚSQL * plusÖÐÖ´ÐУ¬Ò²¿ÉÒÔǶÈëµ½JAVA»òÕßC++ÖС£Æä»ù±¾×é³ÉΪ£º
DECLARE
...
BEGIN
...
EXCEPTION
...
END
¿ÉÓÃÀ´½«¶ÔÊý¾Ý¿âµÄ¸÷ÖÖ²Ù×÷·âװΪһ¸ö´úÂë¿é£¬ÎªÁ˼ÓÇ¿¿ÉÖØÓÃÐÔ£¬»¹¿É½«Öظ´ÐÔ´úÂëд³Éº¯ÊýÓë´æ´¢¹ý³Ì£¬ÓòÎÊý±íʾ±ä»¯µÄ²¿·Ö¡£
º¯ÊýÓë´æ´¢¹ý³ÌµÄÇø±ðÊÇ£¬º¯Êý·µ»ØÒ»¸öÖµ£¬¶ø´æ´¢¹ý³ÌûÓзµ»ØÖµ£¬²»¹ý´æ´¢¹ý³ÌÒ²¿Éͨ¹ýÖ¸¶¨²ÎÊýµÄIN|OUTÐÎʽÀ´´ïµ½½«´¦Àí½á¹û¶Á³öÀ´µÄÄ¿µÄ¡£
1.´æ´¢¹ý³Ì´´½¨Ê¾Àý£º
CREATE OR REPLACE PROCEDURE callme(p1 number,p2 varchar2,p3 varchar2) AS
BEGIN
INSERT INTO test values(p1,p2);
END callme;
2.´æ´¢¹ý³ÌʹÓÃʾÀý£º
DECLARE
val1 number:=16;
val2 varchar2(20):='¹ý³Ì²åÈëµÄв¿ÃÅ2';
val3 varchar2(12);
BEGIN
callme(val1,val2,val3);
END;
3.º¯Êý´´½¨Ê¾Àý£º
CREATE OR REPLACE FUNCTION CountRows(p1 number) RETURN NUMBER AS
v_number NUMBER;
BEGIN
SELECT count(*) INTO v_number from test WHERE id > p1;
RETURN v_number;
END;
4.º¯Êýµ÷ÓÃʾÀý£º
set serveroutput on /*Ö»ÓÐÉèÖÃÁËÕâÐУ¬²Å»áÏÔʾÊä³ö½á¹û*/
DECLARE
v_number NUMBER;
p_minid NUMBER;
BEGIN
p_minid:=0;
v_number:=CountRows(p_minid);
DBMS_OUTPUT.PUT_LINE('²¿ÃźŴóÓÚ'||p_minid||'µÄ²¿ÃÅÓÐ'||v_number||'¸ö');
END;
Ïà¹ØÎĵµ£º
1¡¢±¸·ÝÖ¸¶¨µÄ±í¿Õ¼ä
Ê×ÏÈ£¬ÄãҪȷÈÏ×Ô¼ºµçÄÔÉÏÓÐexp.exeÕâ¸ö¶«¶«£¬²ÅÄܽøÐб¸·Ý¹¤×÷¡£
ÎÒÏëÒª±¸·ÝµÄÊÇÓû§ÃûΪcyyµÄ±í¿Õ¼ä£¬±¸·ÝÎļþ´òËã·ÅÔÚDÅÌ£¬²¢ÒÔbackup_oracle.dmpÃüÃû£¬Ë³±ã°ÑÈÕÖ¾ÎļþÒ²±¸·ÝһϺÃÁË¡£
ÔÚÃüÁîÐÐÇÃÈ룺
C:\Documents and Settings\Administrator>exp cyy/cyy@bsrs file=D:\backup_oracle.dmp ......
Òª½øÐÐѹÁ¦²âÊÔ£¬Öмä¼þʹÓÃWEBLOGIC 816
£¬Êý¾Ý¿â°æ±¾Îª11.1.0.6 RAC
£¬Ñ¹Á¦²âÊÔ¹¤¾ßΪLOADRUNNER 8.0
¡£²âÊÔµ¥ÊµÀýÓëRAC
»·¾³¸÷¸ö½ÚµãµÄ¸ºÔØÇé¿ö¡£
ÔÚWEBLOGIC
ÉÏÅäÖÃÁËÒ»¸ö¶à³Ø£¬ÀûÓÃWEBLOGIC
ÌṩµÄ¸ºÔؾùºâ²ßÂÔ£¬½«²¢·¢¾ùºâµÄ·Ö±ðµ½Á½¸ö½ÚµãÉÏ¡£
µ«ÊDzâÊÔ·¢ÏÖ£¬Ò»µ©ÔËÐÐ
ÁËÒ»¶Îʱ¼ä£¬ËùÓе ......
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
´æ´¢¹ý³ÌΪ£º
create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)
as
begin
insert into dept values(deptno,dname,loc);
end;
È»ºóÄØ£¬ÔÚjavaÀïµ÷ÓÃʱ¾ÍÓÃÏÂÃæµÄ´úÂ룺
public class TestProcedure {
Connectio ......
ÿÌì1µãÖ´ÐеÄoracle JOBÑùÀý
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X,
what => 'ETL_RUN_D_Date;',
next_date => to_date('2009-08-26 01:00:00','yyyy-mm-dd hh24:mi:ss'),
interval => 'trunc(sysdate)+1+1/24',
no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number ......