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;
Ïà¹ØÎĵµ£º
½ñÌìÔÚ»úÆ÷ÉÏ×°Oracle 10g£¬°²×°Íê³ÉÒÔºó³öÏÖ´íÎóÌáʾ¡°ORA-00988: ¿ÚÁîȱʧ»òÎÞЧ¡±£¬È»ºó¾ÍÎÞ·¨½øÈë¿ØÖÆÌ¨½øÐÐÏàÓ¦µÄ²Ù×÷ºÍ¹ÜÀí£¬ÎÒÒÔǰÔÚ°²×°Oracle 9ʱ²¢Ã»ÓгöÏÖ¹ý
Õâ¸ö´íÎó¡£È»ºóÐ¶ÔØºóÖØÐ°²×°£¬ÎÊÌâÒÀ¾É£¬ÕÛÌÚÁ˺ôóÒ»ÕóÖÕÓÚŪÃ÷°×ÊÇÔõôһ»ØÊÂÁË¡£
ÕâÖÖÇé¿öͨ³£·¢ÉúÓÚ´´½¨ Oracle Àý³Ìʱָ¶¨ÁË·ÇÕý³£µÄÈ«¾ÖÊý¾Ý¿ ......
¸ºÔؾùºâÊÇÖ¸Á¬½ÓµÄ¸ºÔؾùºâ¡£RAC
µÄ¸ºÔؾùºâÖ÷ÒªÊÇָлỰÁ¬½Óµ½RACÊý¾Ý¿âʱ£¬ÈçºÎÅж¨
Õâ¸öеÄÁ¬½ÓÒªÁ¬µ½Äĸö½Úµã½øÐй¤×÷¡£ÔÚRACÖУ¬¸ºÔؾùºâ·ÖΪÁ½ÖÖ£¬Ò»ÖÖÊÇ»ùÓÚ¿Í»§¶ËÁ¬½ÓµÄ£¬ÁíÍâÒ»ÖÖÊÇ»ùÓÚ·þÎñÆ÷¶ËµÄ¡£
Ò»¡¢¿Í»§¶Ë¸ºÔؾùºâµÄÅä
ÖÃ
1
¡¢µ±Ç°·þÎñÆ÷ÖеÄÊý¾Ý¿â°æ±¾ÈçÏ£º
SQL> select * from v$version
; ......
½â¾ö·½·¨£º
1. ÏÈ¿´¼¸¸öÅäÖÃÎļþ£ºlistener.ora tnsnames.ora sqlnet.ora
sqlnet.ora-----×÷ÓÃÀàËÆÓÚlinux»òÕ߯äËûunixµÄnsswitch.confÎļþ£¬Í¨¹ýÕâ¸öÎļþÀ´¾ö¶¨ÔõôÑùÕÒÒ»¸öÁ¬½ÓÖгöÏÖµÄÁ¬½Ó×Ö·û´®.¼ÙÈçÎÒµÄsqlnet.oraÊÇÏ ......