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¡¢su – oracle ²»ÊDZØÐ裬ÊʺÏÓÚûÓÐDBAÃÜÂëʱʹÓ㬿ÉÒÔ²»ÓÃÃÜÂëÀ´½øÈësqlplus½çÃæ¡£
2¡¢sqlplus /nolog »òsqlplus system/manager »ò./sqlplus system/manager@ora9i;
3¡¢SQL>connect / as sysdba ;£¨as sysoper£©»ò
connect internal/oracle AS SYSDBA ;(scott/tiger)
conn sys/change_on_install as sysd ......
Ò²Ðí¶ÔSQL ServerÀ´Ëµ,È¡Ç°NλµÄÊý¾ÝÊǺܼòµ¥µÄÊÂÇé,Ò»ÌõTOPÓï¾ä¾Í¸ã¶¨ÁË.
ÔÚOracleÖÐÎÒÃÇÍùÍù»á¸Ð¾õµ½Í·ÌÛ,ƽÈÕÀïÒ²³£»áÓõ½,Ö÷ÒªÊÇʹÓÃpartition by.
Óï·¨ÈçÏÂ:
select emp_card_no,work_date,read_card_date,count(rownum) as cnt
from hra_read_car ......
¹¦ÄÜ£ºOracleÊý¾Ýµ¼Èëµ¼³öimp/exp¾ÍÏ൱ÓëoracleÊý¾Ý»¹ÔÓ뱸·Ý¡£´ó¶àÇé¿ö¶¼¿ÉÒÔÓÃOracleÊý¾Ýµ¼Èëµ¼³öÍê³ÉÊý¾ÝµÄ±¸·ÝºÍ»¹Ô£¨²»»áÔì³ÉÊý¾ÝµÄ¶ªÊ§£©¡£
¡¡¡¡OracleÓиöºÃ´¦£¬ËäÈ»ÄãµÄµçÄÔ²»ÊÇ·þÎñÆ÷£¬µ«ÊÇÄã×°ÁËoracle¿Í»§¶Ë£¬²¢½¨Á¢ÁËÁ¬½Ó £¨Í¨¹ýnet8 assistantÖб¾µØ——>·þÎñÃüÃû Ìí¼ÓÕýÈ·µÄ·þÎñÃüÃû
¡¡¡¡Æ ......
1.´´½¨Ñ§Éú±í£º
CREATE TABLE student (
xh number primary key,
Name varchar2(10) not null);
2. ´´½¨ÐòÁУº
CREATE SEQUENCE student_seq
START WITH 1
INCREMENT BY 1
NOCACHE;
°´»Ø³ ......