±±´óÇàÄñoracleѧϰ±Ê¼Ç16
PL/SQL
¿é½á¹¹
DECLARE
ÉùÃ÷²¿·Ö
BEGIN
¿ÉÖ´Ðв¿·Ö
EXCEPTION
Òì³£´¦Àí²¿·Ö
END;
Àý£º
Ê×ÏÈÎÒÃÇ¿´Ò»¸ö¼òµ¥Ö®Àý×Ó,ÏÂÃæÕâ¸öÀý×ÓÊÇͳ¼Æ´Ó1ÖÁ100µÄ×ܺÍ.
declare
i number:=0; /*ÉùÃ÷±äÁ¿¾®¸ø³õÖµ*/
t number:=1;
error_message exception; /*ÉùÃ÷Ò»¸ö³ö´í´¦Àí*/
begin
for t in 1..100 loop
i:=i+t;
end loop;
if i>=5050 then
raise error_message; /*Òý·¢´íÎó´¦Àí*/
else
insert into c_nt(c_t) values(i);
end if;
exception
when error_message then
insert into c_nt(c_t) values(0);
end;
Ò»¡¢
±äÁ¿
1.
ÄÚÖÃÊý¾ÝÀàÐÍ
A.
±êÁ¿
a)
NUMBER
Datatype
Range
Subtypes
description
BINARY_INTEGER
[-214748364, 2147483647]
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
ÓÃÓÚ´æ´¢µ¥×Ö½ÚÕûÊý¡£
ÒªÇó´æ´¢³¤¶ÈµÍÓÚNUMBERÖµ¡£
ÓÃÓÚÏÞÖÆ·¶Î§µÄ×ÓÀàÐÍ(SUBTYPE):
NATURAL:ÓÃÓڷǸºÊý
POSITIVE:Ö»ÓÃÓÚÕýÊý
NATURALN:Ö»ÓÃÓڷǸºÊýºÍ·ÇNULLÖµ
POSITIVEN:Ö»ÓÃÓÚÕýÊý£¬²»ÄÜÓÃÓÚNULLÖµ
SIGNTYPE:Ö»ÓÐÖµ:-1¡¢0»ò1.
NUMBER
[1.0E-130,1.0E126)
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT
´æ´¢Êý×ÖÖµ£¬°üÀ¨ÕûÊýºÍ¸¡µãÊý¡£¿ÉÒÔÑ¡Ôñ¾«¶ÈºÍ¿Ì¶È·½Ê½£¬Óï·¨£º
number[ ( [,])]¡£
ȱʡµÄ¾«¶ÈÊÇ38,scaleÊÇ0.
PLS_INTEGER
[-214748364, 2147483647]
ÓëBINARY_INTEGER»ù±¾Ïàͬ£¬µ«²ÉÓûúÆ÷ÔËËãʱ£¬PLS_INTEGERÌṩ¸üºÃµÄÐÔÄÜ ¡£
b)
CHARACTER
datatype
rang
subtype
description
CHAR
×î´ó³¤¶È32767×Ö½Ú
CHARACTER
´æ´¢¶¨³¤×Ö·û´®£¬Èç¹û³¤¶ÈûÓÐÈ·¶¨£¬È±Ê¡ÊÇ1
LONG
×î´ó³¤¶È2147483647×Ö½Ú
´æ´¢¿É±ä³¤¶È×
Ïà¹ØÎĵµ£º
MySQLµÄID·Ç³£·½±ã¶¨Ò壬ֻҪָ¶¨Æä×ֶεÄ×Ô¶¯ÔöÁ¿ÊôÐÔ¼´¿É¡£
µ«ÊÇOracle²»ÐУ¬ÐèÒª¶¨ÒåsequenceºÍtriggedr£¬µ±È»trigger¿ÉÒÔ²»¶¨Ò壬µ«ÊDz»·½±ã¡£
±í¶¨ÒåÈçÏ£º
CREATE TABLE GAME
(
ID
INTEGER ......
ORACLE 10 ѧϰ±Ê¼ÇÃüÁîµÚÒ»¿Î¡£
1.
sqlplus /nolog
connect /as sysdba
alter user scott account unlock;
alter user scott identified by manager;
2.
grant select on dept to nmerp;
revoke select on dept to nmerp;
select * from scott.dept
create table abc(a varchar2(10),b char(10));
alter& ......
Âß¼ÉÏ£º
Single column µ¥ÐÐË÷Òý
Concatenated ¶àÐÐË÷Òý
Unique ΨһË÷Òý
NonUnique ·ÇΨһË÷Òý
Function-basedº¯ÊýË÷Òý
Domain ÓòË÷Òý
ÎïÀíÉÏ£º
Partitioned ·ÖÇøË÷Òý
NonPartitioned ·Ç·ÖÇøË÷Òý
B-tree£º
Normal Õý³£ÐÍBÊ÷
Rever Key ·´×ªÐÍBÊ÷
Bitmap λͼË÷Òý
Ë÷Òý½á¹¹£º
B-tree£º
ÊʺÏÓë´óÁ¿µÄÔö¡¢É ......
ÔÚOracleÖеÄÊ÷ÐβÙ×÷
1.È¡×ӽڵ㼰·¾¶(ÕýÊ÷):
select t.id ,t.code, t.name ,t.pid
,SYS_CONNECT_BY_PATH(t.id,'.')||'.' as IdPath
from tas_catalog t
--where id!=110
start with id=110
connect by pid = prior id
order siblings by id
2.È¡¸÷¼¶¸¸½Úµã(µ¹Ê÷)£º
select t.id ,t.code, t.na ......
²é¿´ÕýÔÚÖ´ÐеÄsqlÓï¾ä
SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
²¶×½ÔËÐкܾõÄSQL
select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$ ......