Oracle ÈýÖÖ¼¯ºÏÊý¾ÝÀàÐ͵ıȽÏ
Oracle ÈýÖÖ¼¯ºÏÊý¾ÝÀàÐ͵ıȽÏ:
PL/SQLÖÐûÓÐÊý×éµÄ¸ÅÄËûµÄ¼¯ºÏÊý¾ÝÀàÐͺÍÊý×éÊÇÏàËÆµÄ¡£ÔÚ7.3ÒÔǰµÄ°æ±¾ÖÐÖ»ÓÐÒ»ÖÖ¼¯ºÏ£¬³ÆÎªPL/SQL±í£¬ÔÚÕâÖ®ºóÓÖÓÐÁ½ÖÖ¼¯ºÏÊý¾ÝÀàÐÍ:ǶÌ×±íºÍvarray¡£ÆäÖÐvarray¼¯ºÏÖеÄÔªËØÊÇÓÐÊýÁ¿ÏÞÖÆµÄ£¬index_by±íºÍǶÌ×±íÊÇûÓÐÕâ¸öÏÞÖÆµÄ¡£index-by±íÊÇÏ¡ÊèµÄ£¬Ò²¾ÍÊÇ˵ϱê¿ÉÒÔ²»Á¬Ðø£¬varrayÀàÐ͵ļ¯ºÏÔòÊǽôÃܵģ¬ËûµÄϱêûÓмä¸ô¡£index_by±í²»ÄÜ´æ´¢ÔÚÊý¾Ý¿âÖУ¬µ«ÊÇǶÌ×±íºÍvarray¿ÉÒÔ±»´æ´¢ÔÚÊý¾Ý¿âÖС£
¼¯ºÏÔÚʹÓÃʱ±ØÐëÏÈʹÓÃtype½øÐж¨Òå·½¿ÉʹÓÃ
1.index_by±í
type type_name is table of element_type [NOT NULL] index by binary_integer
2.ǶÌ×±í
type type_name is table of element_type [NOT NULL]
3.varray
type type_name is [varray |varying array](max_size) of element_type[NOT NULL]
Ò»£¬index_by±í
TYPE TYPE1 IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;
1.ʹÓõÄʱºòÐèÒªÏȸ³Öµºó¶ÁÈ¡£¬ÖÁÉÙÒ²ÒªÏȳõÆÚ»¯Ò»Ï£¬·ñÔò»á³öÏÖÒì³££ºORA-01403: no data found¡£
2.ÕâÖÖÊý×é²»ÐèÒªÊÂÏÈÖ¸¶¨ÉÏÏÞ£¬Ï±ê¿ÉÒÔ²»Á¬Ðø£¬¿ÉÒÔÊÇ0»ò¸ºÊý¡£
Àý£ºv1 TYPE1;
v1(-1) := '-1';
v1(0) := '0';
v1(1) := '1';
DBMS_OUTPUT.put_line(v1(-1)); --·ÃÎʺϷ¨
DBMS_OUTPUT.put_line(v1(2)); --·ÃÎÊ·Ç·¨
¶þ£¬Ç¶Ì×±í
TYPE TYPE2 IS TABLE OF VARCHAR2(10);
1.±ØÐë½øÐгõÆÚ»¯£¬·ñÔò»á³öÏÖÒì³££ºORA-06531: Reference to uninitialized collection
2.³õÆÚ»¯·½·¨£º
v1 TYPE2 := TYPE2(); --ÉùÃ÷ʱ³õÆÚ»¯Êý×éΪ¿Õ
v2 TYPE2 := TYPE2('1','2','3','4','5'); --ÉùÃ÷ʱ³õÆÚ»¯Êý×éΪ5¸öÔªËØ
v1 := TYPE2(); --³õÆÚ»¯ºóÊý×éΪ¿Õ
v2 := TYPE2('1','2','3','4','5'); --³õÆÚ»¯ºóÊý×éΪ5¸öÔªËØ
3.Êý×éÔªËØµÄ·ÃÎÊ£º
ϱê´Ó1¿ªÊ¼£¬²»Äܳ¬¹ýÊý×éËùÓÐÔªËØµÄ×ܺͣ¬µ±Ï±곬³öÔÊÐí·¶Î§Ê±£¬³öÏÖÒì³££ºORA-06532: Subscript outside of limit
ÒòΪ²»ÄÜ·ÃÎÊ¿ÕÊý×飬ËùÒÔ¿ÕÊý×éµÄ³¡ºÏ£¬±ØÐë½øÐÐÊý×éÀ©Õ¹¡£
Àý£ºv1.EXTEND;
V1(1):= ‘1’; --·ÃÎʺϷ¨
v1(2):= ‘2’; --·ÃÎÊ·Ç·¨£¬Ö®Ç°±ØÐëÔÙ´ÎÖ´ÐÐv1.EXTEND;
Àý£ºv2µÄϱ귶ΧÊÇ1¡«5¡£
v2(5):= ‘Hello’; --·ÃÎʺϷ¨
DBMS_OUTPUT.put_line(v2(6)); --·ÃÎÊ·Ç·¨
Èý£¬Varray
TYPE TYPE3 IS ARRAY(5) OF VARCHAR2(10);
ÓÉÓÚÀàÐͶ¨ÒåʱµÄÔªËØ¸öÊýÏÞÖÆ£¬ËùÒÔTYPE3µÄ±äÁ¿ÔÚʹ
Ïà¹ØÎĵµ£º
Oracle ´¥·¢Æ÷ÓÐÓï¾ä¼¶´¥·¢Æ÷ºÍÐм¶´¥·¢Æ÷
Óï¾ä¼¶´¥·¢Æ÷ µ±É¾³ý²¿ÃűíÖеIJ¿ÃźÅʱ£¬Í¬Ê±É¾³ýµôÔ±¹¤±íÖв¿ÃźÅΪ£ºold.deptnoµÄ¼Ç¼
create or replace trigger del_dept_id
after delete on dept
for each row
begin
delete from emp where deptno=:old.deptno;
end;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖ ......
Ö÷ÒªÊÇÓÃÀ´´æ´¢´óÁ¿Êý¾ÝµÄÊý¾Ý¿â×ֶΣ¬×î´ó¿ÉÒÔ´æ´¢4G×ֽڵķǽṹ»¯Êý¾Ý¡£
Ö÷Òª½éÉÜ×Ö·ûÀàÐͺͶþ½øÖÆÎļþÀàÐÍLOBÊý¾ÝµÄ´æ´¢£¬µ¥¶À½éÉܶþ½øÖÆÀàÐÍLOBÊý¾ÝµÄ´æ´¢¡£
Ò»£¬OracleÖеÄLOBÊý¾ÝÀàÐÍ·ÖÀà
1£¬°´´æ´¢Êý¾ÝµÄÀàÐÍ·Ö£º
¢Ù×Ö·ûÀàÐÍ£º
CLOB:´æ´¢´óÁ¿ µ¥×Ö½Ú ×Ö·ûÊý¾Ý¡£
  ......
OracleϵÁУºÍ¼Æ¬µÄ´æ´¢
Ò»£ºÊ²Ã´ÊÇ´ó¶ÔÏ󣬴ó¶ÔÏó»ù±¾²Ù×÷£¿
²Î¼ûÎÒµÄBLOG£ºOracleϵÁУºLOB´ó¶ÔÏó´¦Àí
http://blog.csdn.net/qfs_v/archive/2008/05/21/2464599.aspx
¶þ£¬Í¼Æ¬µÄ´æ´¢»ò¶þ½øÖÆÎļþµÄ´æ´¢
1£¬ÏȲåÈëÆÕͨÊý¾Ý£¬Óöµ½´ó¶ÔÏóÁÐʹÓÃempty_blob()¹¹Ôì¿ÕµÄÖ¸Õë¡£
Àý× ......
OracleϵÁУº¼Ç¼£¨Record£©
Ò»£¬Ê²Ã´ÊǼǼ£¨Record£©£¿
Óɵ¥ÐжàÁеıêÁ¿¹¹³ÉµÄ¸´ºÏ½á¹¹¡£¿ÉÒÔ¿´×öÊÇÒ»ÖÖÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ¡£×é³ÉÀàËÆÓÚ¶àάÊý×é¡£
½«Ò»¸ö»ò¶à¸ö±êÁ¿·â×°³ÉÒ»¸ö¶ÔÏó½øÐвÙ×÷¡£ÊÇÒ»ÖÖÁÙʱ¸´ºÏ¶ÔÏóÀàÐÍ¡£
¼Ç¼¿ÉÒÔÖ±½Ó¸³Öµ¡£RECORD1 :=RECORD2£»
¼Ç¼²»¿ÉÒÔÕûÌå±È½Ï. ......
Ò»£¬OracleÊý¾Ý¿âÓû§¼ò½é
ÔÚOracleÊý¾Ý¿âÖÐÈκζÔÏó¶¼ÊôÓÚÒ»¸öÌØ¶¨Óû§£¬»òÕß˵һ¸öÓû§ÓëͬÃûµÄģʽÏà¹ØÁª¡£
ÒªÁ¬½Óµ½OracleÊý¾Ý¿âÐèÒªÒ»¸öÓû§ÕÊ»§£¬¸ù¾ÝÐèÒªÊÚÓèµÄ²Ù×÷ȨÏÞ¡£
1£¬Ä¬ÈÏÊý¾Ý¿âÓû§Ä£Ê½£º
Sys:Êý¾Ý¿â×ֵ䣨´æ´¢±»¹ÜÀí¶ÔÏóËùÓÐÐÅÏ¢£©ºÍÊÓͼ´æ´¢ÔÚ¸ÃģʽÖС£ÏµÍ³¼¶Óû§¡£ ......