8. bulk collect /forall
ʹÓÃbulk collect¿ÉÒÔ³É¿éµØ¶ÁÈ¡Êý¾Ý£¬Ëü¿ÉʹSQLÒýÇæÔÚ·µ»ØÊä³ö½á¹û¸øPL/SQLÒýÇæÖ®Ç°´óÅú°ó¶¨Êä³ö¼¯ºÏ¡£ÕâÑù¿ÉÒÔÒ»´ÎÐԵذÑÊý¾Ý¶¯Ì¬µØ×°Ôص½¼¯ºÏÖУ¬µ«bulk collectÐèÒª´óÁ¿ÄÚ´æ¡£bulk collect¿ÉÓÃÓÚselect into¡¢fetch intoºÍreturning intoÓï¾äÖС£
¡ñ select intoÖÐʹÓÃbulk collect
declare
type t_email is table of employees.email%type;
v_email_list t_email;
begin
select email bulk collect
into v_email_list
from employees
where department_id = 50;
dbms_output.put_line('»ñÈ¡emailµØÖ·Êý£º' || v_email_list.count);
end;
/
»ñÈ¡emailµØÖ·Êý£º45
¡ñ fetch into ÖÐʹÓÃbulk collect
declare
type t_emp is table of employees%rowtype;
v_emp_list t_emp;
cursor c_emp is
select * from employees where department_id = 50;
begin
open c_emp;
--ÔÚfetch intoÖÐʹÓÃbulk collect
fetch c_emp bu ......
8. bulk collect /forall
ʹÓÃbulk collect¿ÉÒÔ³É¿éµØ¶ÁÈ¡Êý¾Ý£¬Ëü¿ÉʹSQLÒýÇæÔÚ·µ»ØÊä³ö½á¹û¸øPL/SQLÒýÇæÖ®Ç°´óÅú°ó¶¨Êä³ö¼¯ºÏ¡£ÕâÑù¿ÉÒÔÒ»´ÎÐԵذÑÊý¾Ý¶¯Ì¬µØ×°Ôص½¼¯ºÏÖУ¬µ«bulk collectÐèÒª´óÁ¿ÄÚ´æ¡£bulk collect¿ÉÓÃÓÚselect into¡¢fetch intoºÍreturning intoÓï¾äÖС£
¡ñ select intoÖÐʹÓÃbulk collect
declare
type t_email is table of employees.email%type;
v_email_list t_email;
begin
select email bulk collect
into v_email_list
from employees
where department_id = 50;
dbms_output.put_line('»ñÈ¡emailµØÖ·Êý£º' || v_email_list.count);
end;
/
»ñÈ¡emailµØÖ·Êý£º45
¡ñ fetch into ÖÐʹÓÃbulk collect
declare
type t_emp is table of employees%rowtype;
v_emp_list t_emp;
cursor c_emp is
select * from employees where department_id = 50;
begin
open c_emp;
--ÔÚfetch intoÖÐʹÓÃbulk collect
fetch c_emp bu ......
¼¼Êõ
/AlexLin ·¢±íÓÚ2007-11-28, 17:39
ÏÖÔÚÎÒÃÇÓÐ2Õűí ÈçÏ£º
T1--´ó±í 10000±Ê T1_FK_ID
T2--С±í 5000±Ê T2_PK_ID
T1ͨ¹ý±íÖÐ×Ö¶ÎIDÓëT2µÄÖ÷¼üID¹ØÁª
Ä£ÄâÊý¾ÝÈçÏ£º
--T2
ÓÐ
5000
±ÊÊý¾Ý
create table T2
as
select rownum id, a.*
from all_objects a
where 1=0;
-- Create/Recreate primary, unique and foreign key constraints
alter table T2
add constraint T2_PK_ID primary key (ID);
insert /*+ APPEND */ into T2
select rownum id, a.*
from all_objects a where rownum<=5000;
--T1
ÓÐ
10000
±ÊÊý¾Ý
create table T1
as
select rownum sid, T2.*
from T2
where 1=0;
-- Create/Recreate primary, unique and foreign key constraints
alter table T1
add constraint T1_FK_ID foreign key (ID)
references t2 (ID);
insert /*+ APPEND */ into T1
select rownum sid, T2.*
  ......
ÒÔDBAÉí·Ý½øÈëSQLPLUS
SQL> sqlplus sys/sys as sysdba;
……
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter system set aq_tm_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use AL32UTF8;(ZHS16GBK)
SQL> shutdown immediate;
SQL> startup;
ÕâÑù¾Í¿ÉÒÔ½²ORACLEµÄ×Ö·û¼¯ÐÞ¸ÄΪUTF8£¬Èç¹ûÐèÒªÐÞ¸ÄΪGBKÖ»Ð轫alter database character set internal_use AL32UTF8;(ZHS16GBK)Õâ¾ä×îºóµÄAL32UTF8ÐÞ¸ÄΪZHS16GBK¼´¿É¡£
......
Èç¹ûÍü¼ÇsysÃÜÂ룬¿ÉÒÔÓòÙ×÷ϵͳȨÏ޵Ǽ£ºdosÏÂÊäÈësqlplus / as sysdba;
ÊÚÓèÆÕͨÓû§(±ÈÈçscott»òÕß´´½¨ÐÂÓû§) alter userȨÏÞ»òÕßdba½ÇÉ«£¬µ±ÊÚÓèdba½Çɫʱ£º¿Éͨ¹ýselect * from v$pwfile_users²é¿´Óû§ÓÐÄÄЩ½ÇÉ«
´´½¨ÐÂÓû§test:
SQL> create user test identified by test £»
ÊÚÓèÆäÁ¬½Ó¼°ÐÞ¸ÄÓû§È¨ÏÞ£º
SQL> grant create session,alter user to test;
ÔÚÖ»ÓÐsysÕË»§ÓµÓÐsysdbaÓësysoperµÄȨÏÞ¡£
SQL> select * from v$pwfile_users;
USERNAME &nbs ......
Ê×ÏȲ鿴Êý¾Ý¿âÏÖÓÐģʽ¿ÉʹÓÃÒÔÏÂÓï¾ä
select name,log_mode from v$database;
Ò²¿ÉÒÔÓÃÏÂÃæµÄÓï¾ä
archive log list£»(¸Ã·½·¨ÐèÒªas sysdba)
SQL> archive log list
Database log mode ¡¡¡¡¡¡¡¡¡¡¡¡No Archive Mode
Automatic archival¡¡¡¡¡¡¡¡¡¡¡¡Disabled
Archive destination¡¡¡¡¡¡¡¡¡¡ /export/home/oracle/product/8.1.7/dbs/arch
Oldest online log sequence ¡¡ 28613
Current log sequence¡¡¡¡¡¡¡¡¡¡28615
SQL> SELECT NAME,LOG_MODE from V$DATABASE;
NAME¡¡¡¡¡¡¡¡LOG_MODE
--------¡¡¡¡------------
BIGSUN¡¡¡¡¡¡NOARCHIVELOG
¶ÔÓڷǹ鵵ģʽµÄÊý¾Ý¿â¸ÃΪ¹éµµÄ£Ê½£¨Ö÷ÒªÒÔOracle 10gΪ²Î¿¼£©Ê¹ÓÃÒÔϲ½Ö裺
1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';
¸ÃÓï¾äº¬ÒåÊÇÈ·¶¨¹éµµÈÕÖ¾µÄ·¾¶£¬Êµ¼ÊÉÏOracle 10g¿ÉÒÔÉú³É¶à·ÝÒ»ÑùµÄÈÕÖ¾£¬±£´æ¶à¸öλÖã¬ÒÔ·À²»²â
ÀýÈçÔÙÌí¼ÓÒ»¸öÈÕ־λÖÿÉʹÓÃÒÔÏÂÓï¾ä
SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';
2.¹Ø±ÕÊý¾Ý¿â
SQL> shutdown immediate
3.Æô¶¯Êý¾Ýmount״̬£ ......
======================×î½üÔÚ¸´Ï°OracleÕâÊÇ×Ô¼º×ܽáµÄ
=============
======= OracleÖ®ÃÅ =======
¡¾µÚÒ»²½£ºÊìϤoracle»ù±¾ÃüÁî¡¿
¡¾»ù±¾sqlplusÃüÁî¡¿
Æô¶¯oracle == Æô¶¯oracleservice¡¢Listener·þÎñ
ʧ°ÜÔò²é¿´ÎļþhostÖµ
怫oracle == sqlplus user/password [sqlplus system/feiyue]
³öÏÖSQL> ÔòµÇ½³É¹¦
Çл»Óû§ == connect user/password [connect scott/tiger]
µ¼Èë½Å±¾ == @ ·¾¶ [@ f:\a.txt]
²é¿´µ±Ç°Óû§== show user
²é¿´±íµÄ½á¹¹== desc[ribe] table
ÔÚ»º³åÇø±àд== ed[it]
Ö´ÐÐÉÏÒ»ÌõsqlÓï¾ä == / ·ûºÅ
ÉèÖÃÐпí == set linesize 120
ÉèÖÃÒ³¸ß == set pagesize 90
´ò¿ªÈÕÖ¾ == spool f:\aa.txt
¹Ø±ÕÈÕÖ¾ == spool off
ÃüÁî»»ÐÐд == show - user
±£´æ½Å±¾ ......