Oracle:PL/SQL ÖÐÈçºÎʹÓÃArray
http://tech.163.com/05/0701/10/1NIODMQS00091589.html
ÒòΪÔÚPL/SQL Öв¢Ã»ÓÐÊý×é.
ÕâÊÇż²é×ÊÁÏÕҵķ¶ÀýºÍ×Ô¼ºÐ´µÄ·¶ÀýÀ´½âÊÍÈçºÎÔÚPL/SQL ÖÐʹÓÃÊý×é. Ò²ÐíºÜ¶àÈËÒÑÖªµÀ, ²»¹ý¾ÍÊÇÈò»ÖªµÀµÄÅóÓÑÃÇÁ˽âһϰɡ£
----------------------
µ¥Î¬Êý×é
------------------------
DECLARE
TYPE
emp_ssn_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
best_employees
emp_ssn_array;
worst_employees emp_ssn_array;
BEGIN
best_employees(1)
:= '123456';
best_employees(2) := '888888';
worst_employees(1)
:= '222222';
worst_employees(2) := '666666';
FOR i IN
1..best_employees.count LOOP
DBMS_OUTPUT.PUT_LINE('i='|| i || ',
best_employees= ' ||best_employees(i)
|| ', worst_employees= '
||worst_employees(i));
END LOOP;
END;
---------------------- ¶à
άÊý×é
------------------------
DECLARE
TYPE
emp_type IS RECORD
( emp_id employee_table.emp_id%TYPE,
emp_name
employee_table.emp_name%TYPE,
emp_gender
employee_table.emp_gender%TYPE );
TYPE emp_type_array IS TABLE OF
emp_type
INDEX BY BINARY_INTEGER;
emp_rec_array emp_type_array;
emp_rec
emp_type;
BEGIN
emp_rec.emp_id := 300000000;
emp_rec.emp_name
:= 'Barbara';
emp_rec.emp_gender := 'Female';
emp_rec_array(1)
:= emp_rec;
emp_rec.emp_id := 300000008;
emp_rec.emp_name :=
'Rick';
emp_rec.emp_gender := 'Male';
emp_rec_array(2) :=
emp_rec;
FOR i IN 1..emp_rec_array.count LOOP
DBMS_OUTPUT.PUT_LINE('i='||i
||',
emp_id ='||emp_rec_array(i).emp_id
||', emp_name
='||emp_rec_array(i).emp_name
||', emp_gender =
'||emp_rec_array(i).emp_gender);
END LOOP;
END;
--------------
Result --------------
i=1, emp_id =300000000, emp_name =Barbara,
emp_gender = Female
i=2, emp_id =300000008, emp_name =Rick,
emp_gender = Male
×¢
£ºÔÚPL/SQL
ÖÐÊÇûÓÐÊý×é(Array) ¸ÅÄîµÄ. µ«ÊÇÈç¹û³ÌÐòÔ±ÏëÓÃArray µÄ»°, ¾ÍµÃ±äͨһÏÂ, ÓÃTYPE ºÍTable of Record
À´´úÌæ¶àάÊý×é, Ò»ÑùͦºÃÓõġ£
emp_type ¾ÍºÃÏóÒ»¸ötable ÖеÄÒ»Ìõrecord Ò»Ñù, ÀïÃæÓÐid,
name,genderµÈ¡£emp_type_array Ïó¸ötable, ÀïÃæº¬ÓÐÒ»ÌõÌõÕ
Ïà¹ØÎĵµ£º
¿ÉÒÔɸѡÊý¾Ý£¬µ«²»ÄÜÊDZê×¼µÄSQLÓï¾ä£º
Me.DsUserManager1.Tables(0).Select("id > 5 and id <20")
---------------------------------------------------------------
1.ɸѡ£º
dataset.tables("tabname").select("id=1")'Ï൱ÓÚSQLÖÐWHEREºóµÄÌõ¼þÄÚÈÝ
2.±£´æµ½ÄÄ£¿Õâµ¹ÊDz»Öª ......
1£©´ÓʹÓÃÉÏÀ´Ëµ£¬oci±ØÐëÔÚ¿Í»§»úÉϰ²×°oracle¿Í»§¶Ë»ò²ÅÄÜÁ¬½Ó£¬¶øthin¾Í²»ÐèÒª£¬Òò´Ë´ÓʹÓÃÉÏÀ´½²thin»¹ÊǸü¼Ó·½±ã£¬ÕâÒ²ÊÇthin±È½Ï³£¼ûµÄÔÒò¡£
2£©ÔÀíÉÏÀ´¿´£¬thinÊÇ´¿javaʵÏÖtcp/ipµÄc/sͨѶ£»¶øoci·½Ê½,¿Í»§¶Ëͨ¹ýnative java methodµ÷ÓÃc library·ÃÎÊ·þÎñ¶Ë£¬¶øÕâ¸öc library¾ÍÊÇoci(oracle called interface ......
×Ö·ûÀàÐÍ£º
CHAR(size)£º¹Ì¶¨³¤¶È×Ö·û´®£¬×î´ó³¤¶È2000 bytes
VARCHAR2(size)£º¿É±ä³¤¶ÈµÄ×Ö·û´®£¬×î´ó³¤¶È4000 bytes£¬¿É×öË÷ÒýµÄ×î´ó³¤¶È749
NCHAR(size)£º¸ù¾Ý×Ö·û¼¯¶ø¶¨µÄ¹Ì¶¨³¤¶È×Ö·û´®£¬×î´ó³¤¶È2000 bytes
NVARCHAR2(size)£º¸ù¾Ý×Ö·û¼¯¶ø¶¨µÄ¿É±ä³¤¶È×Ö·û´®£¬×î´ó³¤¶È4000 byte
LONG£º±ä³¤µÄ×Ö·û´®£¬×î´ó³¤¶ÈÏÞ ......
oracle startupʱ ±¨´íORA-00600: ÄÚ²¿´íÎó´úÂ룬²ÎÊý: [kcratr1_lostwrt], [], [], [], [], [], [], []
ÔÒò¿ÉÄÜÊÇ·Ç·¨¹Ø»ú»òµôµçÔì³É,ÒÔÏÂÊdzöÏÖµÄÎÊÌâ¼°½â¾ö·½·¨:
C:\Documents and Settings\Administrator>sqlplus
ÇëÊäÈëÓû§Ãû: /as sysdba
SQL> startup
ORA-01081: ÎÞ·¨Æô¶¯ÒÑÔÚÔËÐÐµÄ ORACLE ......
Sql³£ÓÃÓï·¨ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK) Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CREATE ......