Oracle ѧϰ£ºPL/SQLÑÐò½¥½øÈ«Ãæѧϰ½Ì³Ì
¿Î³ÌÊ®¶þ ±àд¿ØÖƽṹÓï¾ä
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢½á¹¹¿ØÖƵĵÄÓÃ;ºÍÀàÐÍ
¡¡¡¡2¡¢IF ½á¹¹
¡¡¡¡3¡¢¹¹ÔìºÍ±êʶ²»Í¬µÄÑ»·
¡¡¡¡4¡¢Ê¹ÓÃÂß¼±í
¡¡¡¡5¡¢¿ØÖÆÁ÷ºÍǶÌ×
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢¿ØÖÆÖ´ÐÐÁ÷
¡¡¡¡¿ÉÒÔÊÇ·ÖÖ§ºÍÑ»·£ºIF THEN END IF
¡¡¡¡IF condition THEN
¡¡¡¡statements;
¡¡¡¡[ELSIF condition THEN
¡¡¡¡statements;]
¡¡¡¡[ELSE
¡¡¡¡statements;]
¡¡¡¡END IF;
¡¡¡¡Àý×Ó£ºIF V_ENAME='OSBORNE' THEN
¡¡¡¡V_MGR:=22;
¡¡¡¡END IF;
¡¡¡¡ÕâÀïÎÒÃÇ¿ÉÒÔ×¢Ò⣬PLSQLºÍCÓïÑÔ»òJAVAÔÚÌõ¼þÉϵIJ»Í¬£¬=´ú±í¹ØϵÔËË㣬¶ø£º=´ú±í¸³Öµ¡£
¡¡¡¡¿´Ò»¸öº¯Êý£º
¡¡¡¡create¡¡¡¡FUNCTION calc_val
¡¡¡¡(v_start IN NUMBER)
¡¡¡¡RETURN NUMBER
¡¡¡¡IS
¡¡¡¡BEGIN
¡¡¡¡IF v_start > 100 THEN
¡¡¡¡RETURN (2 * v_start);
¡¡¡¡ELSIF v_start >= 50 THEN
¡¡¡¡RETURN (.5 * v_start);
¡¡¡¡ELSE
¡¡¡¡RETURN (.1 * v_start);
¡¡¡¡END IF;
¡¡¡¡END calc_val;
¡¡¡¡ÏÖÔÚ£¬ËäÈ»ÎÒÃÇÉÐδ½²½âCREATE º¯Êý»ò¹ý³Ì£¬µ«¿ÉÒÔ¿´µ½IF Ìõ¼þÔÚÆäÖеÄ×÷Óá£
¡¡¡¡¶þ¡¢×¢ÒâLOGIC TABLEÖеÄÂß¼¶ÔÓ¦¹Øϵ
¡¡¡¡1¡¢NOT¡¢AND¡¢OR
¡¡¡¡2¡¢Èκαí´ïʽÖк¬ÓпÕÖµ½á¹û¶¼Îª NULL
¡¡¡¡3¡¢Á¬½Ó×Ö·û´®Öк¬ÓпÕÖµ»á°ÑNULL×÷Ϊ EMPTY STRING
¡¡¡¡declare
¡¡¡¡v_deptno dept.deptno%type;
¡¡¡¡v_loc dept.loc%type;
¡¡¡¡V_FLAG BOOLEAN ;
¡¡¡¡V_REC BOOLEAN :=FALSE; --´ËÖµ¸ÄΪTRUE¡¢NULL¡¢FALSE½øÐв»Í¬µÄ±È½Ï
¡¡¡¡V_AVA BOOLEAN:=NULL;
¡¡¡¡begin
¡¡¡¡V_FLAG:=V_REC AND V_AVA;
¡¡¡¡IF V_FLAG=TRUE THEN
¡¡¡¡DBMS_OUTPUT.PUT_LINE ('TRUE');
¡¡¡¡ELSIF V_FLAG=FALSE THEN
¡¡¡¡DBMS_OUTPUT.PUT_LINE ('FALSE');
¡¡¡¡ELSE
¡¡¡¡DBMS_OUTPUT.PUT_LINE ('NULL');
¡¡¡¡END IF;
¡¡¡¡end;
¡¡¡¡/
¡¡¡¡ÖµµÃ×¢ÒâµÄÊÇ£ºNULL AND FALSE ---> FALSE
¡¡¡¡ÕâÊÇÔÚʵ¼ùÖÐ×ܽá³öÀ´µÄ¡£
¡¡¡¡Èý¡¢»ù±¾Ñ»·»ù´¡£º
¡¡¡¡1¡¢LOOP
¡¡¡¡statement1;
¡¡¡¡statement2;
¡¡¡¡. . .
¡¡¡¡EXIT [WHEN condition];
¡¡¡¡END LOOP;
¡¡¡¡v_ord_id s_item.ord_id%TYPE := 101;
¡¡¡¡v_counter NUMBER (2) := 1;
¡¡¡¡BEGIN
¡¡¡¡. . .
¡¡¡¡LOOP
¡¡¡¡INSERT INTO s_item (ord_id, item_id)
¡¡¡¡VALUES (v_ord_id, v_counter);
¡¡¡¡v_counter := v_counter + 1;
¡¡¡¡EXIT WHEN v_counter > 10;
¡¡¡¡END LOOP;
¡¡
Ïà¹ØÎĵµ£º
error£º40´íÎó ÔÒòÊÇÒòΪ SQL Server2005 ĬÈϵÄÉèÖÃΪ²»ÔÊÐíÔ¶³ÌÁ¬½Ó£¬¾Í»áµ¼Ö´Ëʧ°Ü¡£ Ìáʾ£ºprovider£ºÃüÃû¹ÜµÀÌṩ³ÌÐò£¬ error£º40-ÎÞ·¨´ò¿ªµ½ SQL Server µÄÁ¬½Ó)¡£ÊµÀý£¨Ä¬ÈÏÊÇ¡°SQLEXPRESS¡± ·½·¨£º A:¿ªÊ¼->ÅäÖù¤¾ß->SQL Server ÍâΧӦÓÃÅäÖÃÆ÷->·þÎñºÍÁ¬½ÓÍâΧӦÓÃÅäÖÃÆ÷ B:Ñ¡database EngineµÄ¡ ......
¡¡¿Î³Ì ¶þ PL/SQL ²éѯÐк¯Êý
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢ÕÆÎÕ¸÷ÖÖÔÚPL/SQLÖпÉÓõÄROWº¯Êý
¡¡¡¡
¡¡¡¡2¡¢Ê¹ÓÃÕâЩº¯ÊýµÄ»ù±¾¸ÅÄî
¡¡¡¡
¡¡¡¡3¡¢SELECTÓï¾äÖÐʹÓú¯Êý
¡¡¡¡
¡¡¡¡4¡¢Ê¹ÓÃת»»º¯Êý
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢FUNCTIONµÄ×÷Óãº
¡¡¡¡
¡¡¡¡½øÐÐÊý¾Ý¼ÆË㣬ÐÞ¸Ä ......
¿Î³ÌËÄ ×麯Êý
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢Á˽â¿ÉÓõÄ×麯Êý
¡¡¡¡2¡¢ËµÃ÷ÿ¸ö×麯ÊýµÄʹÓ÷½·¨
¡¡¡¡3¡¢Ê¹ÓÃGROUP BY
¡¡¡¡4¡¢Í¨¹ýHAVINGÀ´ÏÞÖÆ·µ»Ø×é
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡Ò»¡¢¸ÅÄ
¡¡¡¡×麯ÊýÊÇÖ¸°´Ã¿×é·µ»Ø½á¹ûµÄº¯Êý¡£
¡¡¡¡×麯Êý¿ÉÒÔ³öÏÖÔÚSELECTºÍHAVING ×Ö¶ÎÖС£
¡¡¡¡GROUP ......
¡¡¿Î³ÌÆß ÆäËûÊý¾Ý¿â¶ÔÏó
¡¡¡¡
¡¡¡¡SEQUENCE
¡¡¡¡
¡¡¡¡´´½¨ÊµÀý£º
¡¡¡¡
¡¡¡¡SQL> CREATE SEQUENCE s_dept_id
¡¡¡¡
¡¡¡¡2 INCREMENT BY 1
¡¡¡¡
¡¡¡¡3 START WITH 51
¡¡¡¡
¡¡¡¡4 MAXVALUE 9999999
¡¡¡¡
¡¡¡¡5 NOCACHE
¡¡¡¡
¡¡¡¡6 NOCYCLE;
¡¡¡¡
¡¡¡¡Sequence created.
¡¡¡¡
¡¡¡¡1¡¢NEXTVALºÍCURRVALµÄ ......
¿Î³Ì¾Å ÉùÃ÷±äÁ¿
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢Á˽â»ù±¾µÄPLSQL¿éºÍÇøÓò
¡¡¡¡2¡¢ÃèÊö±äÁ¿ÔÚPLSQLÖеÄÖØÒªÐÔ
¡¡¡¡3¡¢Çø±ðPLSQLÓë·ÇPLSQL±äÁ¿
¡¡¡¡4¡¢ÉùÃ÷±äÁ¿
¡¡¡¡5¡¢Ö´ÐÐPLSQL¿é
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢¸ÅÊö£º
¡¡¡¡1¡¢PLSQL ¿é½á¹¹£º
¡¡¡¡DECLARE --- ¿ÉÑ¡
¡¡¡¡±äÁ¿Éù ......