ORACLE ¶¯Ì¬Óï¾ä
ÔÚÒ»°ãµÄPL/SQL³ÌÐò¿ª·¢ÖУ¬¿ÉÒÔʹÓÃSQLµÄDMLÓï¾äºÍÊÂÎñ¿ØÖÆÓï¾ä£¬µ«ÊÇDDLÓï¾ä¼°»á»°Óï¾äÈ´²»ÄÜÔÚPL/SQLÖÐÖ±½ÓʹÓã¬ÒªÏëʵÏÖÔÚPL/SQLÖÐʹÓÃDDLÓï¾ä¼°»á»°¿ØÖÆÓï¾ä£¬¿ÉÒÔͨ¹ý¶¯Ì¬SQLÀ´ÊµÏÖ¡£
Ëùν¶¯Ì¬SQLÊÇÖ¸ÔÚPL/SQL¿é±àÒëʱSQLÓï¾äÊDz»È·¶¨µÄ£¬ÀýÈç¸ù¾ÝÓû§ÊäÈë²ÎÊýµÄ²»Í¬¶øÖ´Ðв»Í¬µÄ²Ù×÷¡£±àÒë³ÌÐò¶Ô¶¯Ì¬Óï¾ä²¿·Ö²»½øÐд¦Àí£¬Ö»ÊÇÔÚ³ÌÐòÔËÐÐʱ¶¯Ì¬µØ´´½¨Óï¾ä£¬¶ÔÓï¾ä½øÐÐÓï·¨·ÖÎö²¢Ö´ÐиÃÓï¾ä¡£ ORACLEÖеĶ¯Ì¬SQL¿ÉÒÔͨ¹ý±¾µØ¶¯Ì¬SQLÃüÁîÀ´Ö´ÐУ¬Ò²¿ÉÒÔͨ¹ýDBMS_SQL³ÌÐò°üÀ´Ö´ÐС£
ͨ³£ÔÚ¿ª·¢ÖÐÓüòµ¥µÄ±¾µØ¶¯Ì¬SQL¾ÍÄܽâ¾öÎÊÌ⣬ÔÚÏÂÃæÎÒ»áÓñðµÄ·½·¨À´ÊµÏÖ¡£¸ø³öÖ´Ðб¾µØ¶¯Ì¬SQLµÄÓï·¨£º
EXECUTE IMMEDIATE dynamic_sql_string [INTO define_variable_list] [USING bind_argument_list];
ÆäÖУº dynamic_sql_string ÊǶ¯Ì¬SQLÓï¾ä×Ö·û´® INTO×Ó¾äÓÃÓÚ½ÓÊÜSELECTÓï¾äÑ¡ÔñµÄ¼Í¼ֵ¡£ USING×Ó¾äÓÃÓÚ½ÓÊÜ°ó¶¨ÊäÈë²ÎÊý±äÁ¿¡£
Àý×Ó1:
DECLARE
sql_s varchar2(200);
emp_id number(4):=7566;
emp_rec emp%rowtype;
BEGIN
EXECUTE IMMEDIATE 'create table table_name (id number,amt number)';
sql_s:='select * from emp where empno=:id;
EXECUTE IMMEDIATE sql_s into emp_rec using emp_id;
END;
Õâ¶Î´úÂëÊ×ÏÈÖ´ÐÐÒ»Ìõ´´½¨µÄ¶¯Ì¬SQL,½Ó×ÅÖ´ÐÐÁË´ø²ÎÊýµÄSELECTÓï¾ä¡£EXECUTE IMMEDIATEÓï¾äÖ»ÄÜÓÃÓÚ´¦Àí·µ»Øµ¥ÐлòûÓзµ»ØµÄSQLÓï¾ä£¬Òª´¦Àí·µ»Ø¶àÐеĶ¯Ì¬SQL¾ÍҪʹÓÃREFÓαêµÄOPEN...FORÓï¾ä¡£ÏÂÃæ¾ÍÀ´ÌÖÂÛ£º
Àý2£º
ÒªÇó£ºÓû§ÊäÈë¶à¸öÅú´ÎºÅ(lot_number)ºÍÎïÁϺÅ(key_number )»ò¶à¸öÅú´ÎºÅ(lot_number)ºÍ¹©Ó¦ÉÌÃû(ver_apell)À´Çó¿â´æÖÐÎïÁϵÄÊýĿΪÁËÈôúÂë½á¹¹ÇåÎú£¬ÎÒʹÓðüÀ´´´½¨´úÂ룺
Ê×ÏÈ£¬´´½¨°üÍ·²¿·Ö£º
create or replace package SMT_Traceability_p is
&n
Ïà¹ØÎĵµ£º
Ò»£¬PL/SQL¿éµÄ½á¹¹ºÍ×é³ÉÔªËØ
PL/SQL³ÌÐòÓÉÉùÃ÷²¿·Ö£¬Ö´Ðв¿·Ö£¬Òì³£´¦Àí²¿·ÖÈý¸ö²¿·Ö×é³É¡£½á¹¹ÈçÏ£º
DECLARE
/*ÉùÃ÷²¿·Ö£ºÔÚ´ËÉùÃ÷PL/SQL±äÁ¿£¬ÀàÐͼ°Óα꣬ÒÔ¼°¾Ö²¿µÄ´æ´¢¹ý³ÌºÍº¯Êý*/
BEGIN
/*Ö´Ðв¿·Ö£º¹ý³Ì¼°sqlÓï¾ä£¬³ÌÐòÖ÷Òª²¿·Ö£¬ÊDZØÐëµÄ*/
EXCEPTION
/*Òì³£´¦Àí²¿·Ö£º´íÎó´¦Àí*/
END
PL/SQL¿ ......
°üÓÉ°ü¹æ·¶ºÍ°üÌåÁ½²¿·Ö×é³É¡£
1¡¢°ü¹æ·¶£¨Package Specification£©
°ü¹æ·¶£¬Ò²½Ð×ö°üÍ·£¬°üº¬ÁËÓйذüµÄÄÚÈݵÄÐÅÏ¢¡£µ«ÊÇ£¬Ëü²»°üº¬Èκιý³ÌµÄ´úÂë¡£
´´½¨°üÍ·µÄÓï·¨Ò»°ãÈçÏÂ
CREATE [OR REPLACE] PACKAGE package_name {IS | AS}
Procedure_name | function_name | variable_declaration | type_def ......
1¡¢´¥·¢Æ÷µÄ¸ÅÄî
´¥·¢Æ÷Ò²ÊÇÒ»ÖÖ´øÃûµÄPL/SQL¿é¡£´¥·¢Æ÷ÀàËÆÓÚ¹ý³ÌºÍº¯Êý£¬ÒòΪËüÃǶ¼ÊÇÓµÓÐÉùÃ÷¡¢Ö´ÐкÍÒì³£´¦Àí¹ý³ÌµÄ´øÃûPL/SQL¿é¡£Óë°üÀàËÆ£¬´¥·¢Æ÷±ØÐë´æ´¢ÔÚÊý¾Ý¿âÖв¢ÇÒ²»Äܱ»¿é½øÐб¾µØ»¯ÉùÃ÷¡£
¶ÔÓÚ´¥·¢Æ÷¶øÑÔ£¬µ±´¥·¢Ê¼þ·¢ÉúµÄʱºò¾Í»áÏÔʽµØÖ´Ðиô¥·¢Æ÷£¬²¢ÇÒ´¥·¢Æ÷²»½ÓÊܲÎÊý¡£
´´½¨´¥·¢Æ÷µÄÓï·¨È ......
OracleµÄ·ÖÒ³²éѯÓï¾ä»ù±¾ÉÏ¿ÉÒÔ°´ÕÕ±¾Îĸø³öµÄ¸ñʽÀ´½øÐÐÌ×Óá£
·ÖÒ³²éѯ¸ñʽ£º
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
ÆäÖÐ×îÄÚ²ãµÄ²éѯSELECT * from TABLE_NAME±íʾ²»½øÐзҳµÄÔʼ²éѯÓï¾ä¡£ROWNUM <= 40ºÍRN ......
ÿ¸öOracleÓû§¶¼ÓÐÒ»¸öÃû×ֺͿÚÁî,²¢ÓµÓÐһЩÓÉÆä´´½¨µÄ±í¡¢ÊÓͼºÍÆäËû×ÊÔ´¡£Oracle½ÇÉ«£¨role£©¾ÍÊÇÒ»×éȨÏÞ£¨privilege£©(»òÕßÊÇÿ¸öÓû§¸ù¾ÝÆä״̬ºÍÌõ¼þËùÐèµÄ·ÃÎÊÀàÐÍ)¡£Óû§¿ÉÒÔ¸ø½ÇÉ«ÊÚÓè»ò¸³ÓèÖ¸¶¨µÄȨÏÞ£¬È»ºó½«½ÇÉ«¸³¸øÏàÓ¦µÄÓû§¡£Ò»¸öÓû§Ò²¿ÉÒÔÖ±½Ó¸øÆäËûÓû§ÊÚȨ¡£
Êý¾Ý¿âϵͳȨÏÞ£¨Database System Privil ......