Ò»¡¢ ÄÚ´æ½á¹¹
¹²Ïí³Ø£º·ÖΪ¿â¸ßËÙ»º´æºÍ×Öµä¸ßËÙ»º³åÇø
¿â¸ßËÙ»º´æ£¬ÓÃÓÚ´æ´¢¾¹ýÓï·¨·ÖÎö²¢ÇÒÕýÈ·µÄSQLÓï¾ä£¬²¢ËæÊ±×¼±¸Ö´ÐС£
×Öµä¸ßËÙ»º³åÇø£¬´æ´¢µÇ½µ½ORACLEµÄÓû§Ãû£¬¼°ÕâЩÓû§ÓÐÄÄЩÊý¾Ý¿â¶ÔÏóÒÔ¼°ÕâЩÊý¾Ý¿â¶ÔÏóµÄλÖá£
Êý¾Ý»º³åÇø£ºÊý¾Ý¸ßËÙ»º³åÇø°üº¬Èý¸öÀàÐ͵ÄÇøÓò
keep»º³å³Ø¡¢recycle»º³å³Ø¡¢ default»º³å³Ø
´æ·ÅORACLEϵͳ×î½üʹÓùýµÄÊý¾Ý¿é
ÈÕÖ¾»º³åÇø£º
ÈκÎÊÂÎñÔڼǼµ½ÖØ×öÈÕ־֮ǰ¶¼±ØÐëÊ×Ïȷŵ½ÖØ×öÈÕÖ¾»º³åÇøÖУ¬È»ºóÓÉÈÕ־дÈë½ø³Ì¶¨ÆÚ½«´Ë»º³åÇøµÄÄÚÈÝдÈëÖØ×öÈÕÖ¾ÖÐ
¶þ¡¢ ºǫ́½ø³Ì
PMON£º
¼à¿ØÓû§½ø³Ì£¬ÓÃÓÚÖÕÖ¹ÄÇЩʧ°ÜµÄÓû§ÒÔ¼°ÊÍ·ÅÓû§ËùÕ¼ÓõÄ×ÊÔ´µÈ
SMON£º
&nb ......
ORACLE Êý¾Ý¿â¶ÔÏó
——Ë÷Òý
q Ë÷ÒýÊÇÓë±íÏà¹ØµÄÒ»¸ö¿ÉÑ¡½á¹¹
q ÓÃÒÔÌá¸ß SQL Óï¾äÖ´ÐеÄÐÔÄÜ
q ¼õÉÙ´ÅÅÌI/O
q ʹÓà CREATE INDEX Óï¾ä´´½¨Ë÷Òý
q ÔÚÂß¼ÉϺÍÎïÀíÉ϶¼¶ÀÁ¢ÓÚ±íµÄÊý¾Ý
q Oracle ×Ô¶¯Î¬»¤Ë÷Òý
Ë÷ÒýµÄÄ¿±ê£ºÌá¸ß²éѯÐÔÄÜ
Ë÷Òý¶ÔÔöɾ¸Ä²éµÄÓ°Ïì
SQLÓï¾ä
¶ÔÐÔÄܵÄÓ°Ïì
SELECT
²éѯÐÔÄÜÌá¸ß
UPDATE
¸üÐÂɾ³ýʱÐèÒªÏȲéѯ£¬´Ó´Ë½Ç¶ÈÐÔÄÜÌá¸ß
¸üÐÂɾ³ýʱÒýÆðË÷ÒýÐ޸ģ¬´Ó´Ë½Ç¶ÈÐÔÄÜϽµ
DELETE
INSERT
Ôö¼ÓÒýÆðË÷Òý¸Ä±ä£¬Ë÷Òý¶ÔÆä¸ºÃæÓ°Ïì¸ü´ó£¬ÐÔÄÜϽµ
ʲôʱºò½¨Á¢Ë÷Òý£¿
1. ÐèҪƵ·±²éѯµÄÊý¾Ý
2. Êý¾ÝÁ¿½Ï¶à
3. ¸ÃÁв»»áƵ·± update/insert/delete
4. ÔÚ where/order by/group by ×Ö¾äÖгöÏÖµ ......
ORACLEÓαê
Óα꣺ÈÝÆ÷£¬´æ·Åµ±Ç°SQLÓï¾äÓ°ÏìµÄ¼Ç¼
ËùÓÐDMLÓï¾ä¶¼»áÓõ½Óαê
ÖðÐд¦ÀíÓ°ÏìµÄÐÐÊý
Óαê
¾²Ì¬Óα꣺ÓαêÓëSQLÓï¾äÔÚÔËÐÐǰ¹ØÁª
¶¯Ì¬Óα꣺ÓαêÓëSQLÓï¾äÔÚÔËÐÐʱ¹ØÁª
Óαê
ÒþʽÓα꣺×Ô¶¯ÉùÃ÷¡¢´ò¿ª¡¢¹Ø±Õ£¬ÆäÃûSQL
ÏÔʽÓα꣺
REFÓα꣺£¨¶¯Ì¬Óα꣩
ÏÔʽÓαê²Ù×÷¹ý³Ì
ÉùÃ÷Óα꣨¹ØÁªSQLÓï¾ä£© cursor Ãû×Ö is/as sqlÓï¾ä£¨DML£©;
´ò¿ªÓαִ꣨ÐÐSQLÓï¾ä£¬Ìî³äÓα꣩ open Ãû×Ö;
´ÓÓαêÖÐÌáȡֵ£¬´æ·Åµ½ÐÐÀàÐͱäÁ¿ÖÐ fetch Ãû×Ö into ÐÐÀàÐͱäÁ¿;
......
³ÌÐò°ü
°üÖ÷Ìå/¹æ·¶Ãû×ÖÒ»Ñù
°üÖ÷Ìå/¹æ·¶ÖеĶÔÓ¦²ÎÊý±ØÐëÀàÐͼ°Ãû×ÖÒ»Ñù
Ö»ÄÜʹÓÃÇ¿ÀàÐ͵ÄREFÓαê
´´½¨³ÌÐò°ü¹æ·¶
create or replace package my_pack
is
procedure find_emp_proc(eno emp.empno%type);
function find_emp_fun(eno emp.empno%type) return emp.ename%type;
end my_pack;
SQL> ed
SQL> /
Package created
µ÷Óú¯Êý
SQL> select my_pack.find_emp_fun(7788) from dual;
select my_pack.find_emp_fun(7788) from dual
ORA-04068: ÒѶªÆú³ÌÐò°ü µÄµ±Ç°×´Ì¬
ORA-04067: δִÐУ¬package body "SCOTT.MY_PACK" ²»´æÔÚ
ORA-06508: PL/SQL: ÎÞ·¨ÔÚµ÷ÓÃ֮ǰÕÒµ½³ÌÐòµ¥Ôª
ORA-06512: ÔÚline 1
Ö´Ðд洢¹ý³Ì
SQL> exec my_pack.find_emp_proc(7788);
begin my_pack.find_emp_proc(7788); end;
ORA-04068: ÒѶªÆú³ÌÐò°ü µÄµ±Ç°×´Ì¬
ORA-04067: δִÐУ¬package body "SCOTT.MY_PACK" ²»´æÔÚ
ORA-06508: PL/SQL: ÎÞ·¨ÔÚµ÷ÓÃ֮ǰÕÒµ½³ÌÐòµ¥Ôª
ORA-06512: ......
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User Id=system;Password=bupt8971;Data Source=TEST;"
strQuery = "select * from Patrol"
Set rs = New ADODB.Recordset
rs.Open strQuery, cn, adOpenStatic, adLockOptimistic
cmbID.Text = ""
cmbName.Text = ""
If rs.EOF Then
Else
While Not rs.EOF
cmbID.AddItem rs(0)
cmbName.AddItem rs(1)
rs.MoveNext
Wend
End If
......
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User Id=system;Password=bupt8971;Data Source=TEST;"
strQuery = "select * from Patrol"
Set rs = New ADODB.Recordset
rs.Open strQuery, cn, adOpenStatic, adLockOptimistic
cmbID.Text = ""
cmbName.Text = ""
If rs.EOF Then
Else
While Not rs.EOF
cmbID.AddItem rs(0)
cmbName.AddItem rs(1)
rs.MoveNext
Wend
End If
......
¹ý³Ì¡¢º¯Êý
create or replace procedure p1
is
empname emp.ename%type;
begin
select ename into empname from emp where empno=7788;
dbms_output.put_line(empname);
end;
SQL> ed
SQL> /
Procedure created
SQL> exec p1;
SCOTT
PL/SQL procedure successfully completed
create or replace procedure p1(eno emp.empno%type)
is
empname emp.ename%type;
begin
select ename into empname from emp where empno=eno;
dbms_output.put_line(empname);
end;
SQL> ed
SQL> /
Procedure created
SQL> exec p1(7788);
SCOTT
PL/SQL procedure successfully completed
create or replace procedure p1(eno in emp.empno%type)
is
empname emp.ename%type;
begin
select ename into empname from emp where empno=eno;
dbms_output.put_line(empname);
end;
SQL> ed
SQL> /
Procedure crea ......