¿ª·ÅÐÔ:
SQL Server
Ö»ÄÜÔÚwindows ÉÏÔËÐУ¬Ã»ÓÐË¿ºÁµÄ¿ª·ÅÐÔ£¬²Ù×÷ϵͳµÄϵͳµÄÎȶ¨¶ÔÊý¾Ý¿âÊÇÊ®·ÖÖØÒªµÄ¡£Windows9XϵÁвúÆ·ÊÇÆ«ÖØÓÚ×ÀÃæÓ¦Óã¬NT serverÖ»ÊʺÏÖÐСÐÍÆóÒµ¡£¶øÇÒwindowsƽ̨µÄ¿É¿¿ÐÔ£¬°²È«ÐÔºÍÉìËõÐÔÊǷdz£ÓÐÏ޵ġ£Ëü²»ÏóunixÄÇÑù¾Ã¾¿¼Ñ飬ÓÈÆäÊÇÔÚ´¦Àí´óÊý¾ÝÁ¿µÄ¹Ø¼üÒµÎñʱ.
Oracle
ÄÜÔÚËùÓÐÖ÷Á÷ƽ̨ÉÏÔËÐУ¨°üÀ¨ windows£©¡£Íêȫ֧³ÖËùÓеĹ¤Òµ±ê×¼¡£²ÉÓÃÍêÈ«¿ª·Å²ßÂÔ¡£¿ÉÒÔʹ¿Í»§Ñ¡Ôñ×îÊʺϵĽâ¾ö·½°¸¡£¶Ô¿ª·¢ÉÌÈ«Á¦Ö§³Ö¡£
DB2
ÄÜÔÚËùÓÐÖ÷Á÷ƽ̨ÉÏÔËÐУ¨°üÀ¨windows£©¡£×îÊÊÓÚº£Á¿Êý¾Ý¡£DB2ÔÚÆóÒµ¼¶µÄÓ¦ÓÃ×îΪ¹ã·º,ÔÚÈ«ÇòµÄ500¼Ò×î´óµÄÆóÒµÖÐ,¼¸ºõ85%ÒÔÉÏÓÃDB2Êý¾Ý¿â·þÎñÆ÷,¶ø¹úÄÚµ½97ÄêÔ¼Õ¼5%.
¿ÉÉìËõÐÔ,²¢ÐÐÐÔ
SQL server
DB2
²¢ÐÐʵʩºÍ¹²´æÄ£ÐͲ¢²»³ÉÊì¡£ºÜÄÑ´¦ÀíÈÕÒæÔö¶àµÄÓû§ÊýºÍÊý¾Ý¾í¡£ÉìËõÐÔÓÐÏÞ¡£
Oracle
ƽÐзþÎñÆ÷ͨ¹ýʹһ×é½áµã¹²Ïíͬһ´ØÖеŤ×÷À´À©Õ¹windowntµÄÄÜÁ¦,Ìṩ¸ß¿ÉÓÃÐԺ͸ßÉìËõÐԵĴصĽâ¾ö·½°¸¡£
& ......
¿ª·ÅÐÔ:
SQL Server
Ö»ÄÜÔÚwindows ÉÏÔËÐУ¬Ã»ÓÐË¿ºÁµÄ¿ª·ÅÐÔ£¬²Ù×÷ϵͳµÄϵͳµÄÎȶ¨¶ÔÊý¾Ý¿âÊÇÊ®·ÖÖØÒªµÄ¡£Windows9XϵÁвúÆ·ÊÇÆ«ÖØÓÚ×ÀÃæÓ¦Óã¬NT serverÖ»ÊʺÏÖÐСÐÍÆóÒµ¡£¶øÇÒwindowsƽ̨µÄ¿É¿¿ÐÔ£¬°²È«ÐÔºÍÉìËõÐÔÊǷdz£ÓÐÏ޵ġ£Ëü²»ÏóunixÄÇÑù¾Ã¾¿¼Ñ飬ÓÈÆäÊÇÔÚ´¦Àí´óÊý¾ÝÁ¿µÄ¹Ø¼üÒµÎñʱ.
Oracle
ÄÜÔÚËùÓÐÖ÷Á÷ƽ̨ÉÏÔËÐУ¨°üÀ¨ windows£©¡£Íêȫ֧³ÖËùÓеĹ¤Òµ±ê×¼¡£²ÉÓÃÍêÈ«¿ª·Å²ßÂÔ¡£¿ÉÒÔʹ¿Í»§Ñ¡Ôñ×îÊʺϵĽâ¾ö·½°¸¡£¶Ô¿ª·¢ÉÌÈ«Á¦Ö§³Ö¡£
DB2
ÄÜÔÚËùÓÐÖ÷Á÷ƽ̨ÉÏÔËÐУ¨°üÀ¨windows£©¡£×îÊÊÓÚº£Á¿Êý¾Ý¡£DB2ÔÚÆóÒµ¼¶µÄÓ¦ÓÃ×îΪ¹ã·º,ÔÚÈ«ÇòµÄ500¼Ò×î´óµÄÆóÒµÖÐ,¼¸ºõ85%ÒÔÉÏÓÃDB2Êý¾Ý¿â·þÎñÆ÷,¶ø¹úÄÚµ½97ÄêÔ¼Õ¼5%.
¿ÉÉìËõÐÔ,²¢ÐÐÐÔ
SQL server
DB2
²¢ÐÐʵʩºÍ¹²´æÄ£ÐͲ¢²»³ÉÊì¡£ºÜÄÑ´¦ÀíÈÕÒæÔö¶àµÄÓû§ÊýºÍÊý¾Ý¾í¡£ÉìËõÐÔÓÐÏÞ¡£
Oracle
ƽÐзþÎñÆ÷ͨ¹ýʹһ×é½áµã¹²Ïíͬһ´ØÖеŤ×÷À´À©Õ¹windowntµÄÄÜÁ¦,Ìṩ¸ß¿ÉÓÃÐԺ͸ßÉìËõÐԵĴصĽâ¾ö·½°¸¡£
& ......
ÕâÀïÊ×ÏÈ˵ÏÂoracle·ÖÒ³²»Ïñmysql·ÖÒ³ÄÇô¼òµ¥Ö±½Ólimit ¾Í¿ÉÒÔÁË.
mysql£ºsql ="select * from talbe limit 0,10";
µÚÒ»¸öÊý±íʾϱ꣬¾ÍÊÇ´ÓµÚ¼¸ÌõÊý¾Ý¿ªÊ¼£¬
µÚ¶þ¸öÊý±íʾÿҳÏÔʾ¶àÉÙÌõÊý¾Ý£¬¿ÉÒÔ˵Êǵ±ÄãÈ·¶¨Ã¿Ò³ÏÔʾ¶àÉÙÐÐʱºò£¬Ëü¾ÍÊÇÒ»¸ö¹Ì¶¨µÄÊý¡£
ÕâÀïÐèҪעÒâµÄÊÇ£¬mysqlµÄ·ÃÎÊϱêÊÇ´Ó0¿ªÊ¼µÄ¡£Õâ¸öÒ»¶¨Òª¼Çס¡£
ÏÂÃæËµËµoracle£¬oracleµÄ·ÖÒ³¾Í±È½ÏÂ鷳ЩÁË.
oracleÊÇûÓÐid×ÔÔö³¤µÄ£¬ÎÒÃÇÒªÊ×ÏÈÒª¶ÔÎÒÃÇ×Ô¼ºÔÚ±í×Ô½¨µÄid´´½¨¸öÐòÁÐ
select * from table(Book) order by B_id //µÚÒ»²½Ê²Ã´ÄØ£¿
ÎÒoracle±íÖеÄB_idÏÈ
°´ÕÕarder by ÅÅÐòÏ£¬¾ÍÊÇÔÚoracleÖÐÊÇûÓÐid×ÔÔö³¤µÄ£¬ÖмäÈÝÒ׳öÏֶϲã
µÚ¶þ²½
ÎÒÃǰÑÉÏÃæµÄµÚÒ»¸öµÄÓï¾ä×÷Ϊһ¸öÌõ¼þÓÃÀ¨»¡À¨ÆðÀ´,ÄÇôµÚÒ»¸ösqlÓï¾äÏ൱ÓÚÒ»¸öÊÓͼ£¬ÎÒÃÇΪÁË·½±ã£¬ÔÚ¸øËûÒ»¸ö±ðÃû¡£m¾ÍÊÇÕâ¸öÊÓͼµÄ±ðÃû,
ÕâÀïÎÒÃÇÖªµÀoracleÀïÃæÅÅÐòʱͨ¹ý“rownum”µÄ¹Ø¼ü×Ö£¬ÎÒÃÇÒ²¸øËûÆð¸ö±ðÃû½Ðrn,¾ÍÊǺóÃæÎ±ÁеÄÃû×Ö£»
ÕâÑùÎÒÃÇÖ´ÐÐÏÂÃæµÄÓï¾ä£¬»á²úÉúÒ»¸öαÁУ¬rn£¬µ±È»Ò»¸öαÁкÍB_idÊDz»Ò»ÑùµÄ
B_id»á³öÏÖÁÑ·ì,¶Ï²ã,µ«ÊÇÕâ¸öαÁÐÊDz»»áµÄ¡£¼´±ãB_idÖмä¶Ï²ã£¬rnÕâ¸öαÁÐÓÀÔ¶
Êǰ´ÕÕ1,2,3,...10. ......
ÕâÀïÊ×ÏÈ˵ÏÂoracle·ÖÒ³²»Ïñmysql·ÖÒ³ÄÇô¼òµ¥Ö±½Ólimit ¾Í¿ÉÒÔÁË.
mysql£ºsql ="select * from talbe limit 0,10";
µÚÒ»¸öÊý±íʾϱ꣬¾ÍÊÇ´ÓµÚ¼¸ÌõÊý¾Ý¿ªÊ¼£¬
µÚ¶þ¸öÊý±íʾÿҳÏÔʾ¶àÉÙÌõÊý¾Ý£¬¿ÉÒÔ˵Êǵ±ÄãÈ·¶¨Ã¿Ò³ÏÔʾ¶àÉÙÐÐʱºò£¬Ëü¾ÍÊÇÒ»¸ö¹Ì¶¨µÄÊý¡£
ÕâÀïÐèҪעÒâµÄÊÇ£¬mysqlµÄ·ÃÎÊϱêÊÇ´Ó0¿ªÊ¼µÄ¡£Õâ¸öÒ»¶¨Òª¼Çס¡£
ÏÂÃæËµËµoracle£¬oracleµÄ·ÖÒ³¾Í±È½ÏÂ鷳ЩÁË.
oracleÊÇûÓÐid×ÔÔö³¤µÄ£¬ÎÒÃÇÒªÊ×ÏÈÒª¶ÔÎÒÃÇ×Ô¼ºÔÚ±í×Ô½¨µÄid´´½¨¸öÐòÁÐ
select * from table(Book) order by B_id //µÚÒ»²½Ê²Ã´ÄØ£¿
ÎÒoracle±íÖеÄB_idÏÈ
°´ÕÕarder by ÅÅÐòÏ£¬¾ÍÊÇÔÚoracleÖÐÊÇûÓÐid×ÔÔö³¤µÄ£¬ÖмäÈÝÒ׳öÏֶϲã
µÚ¶þ²½
ÎÒÃǰÑÉÏÃæµÄµÚÒ»¸öµÄÓï¾ä×÷Ϊһ¸öÌõ¼þÓÃÀ¨»¡À¨ÆðÀ´,ÄÇôµÚÒ»¸ösqlÓï¾äÏ൱ÓÚÒ»¸öÊÓͼ£¬ÎÒÃÇΪÁË·½±ã£¬ÔÚ¸øËûÒ»¸ö±ðÃû¡£m¾ÍÊÇÕâ¸öÊÓͼµÄ±ðÃû,
ÕâÀïÎÒÃÇÖªµÀoracleÀïÃæÅÅÐòʱͨ¹ý“rownum”µÄ¹Ø¼ü×Ö£¬ÎÒÃÇÒ²¸øËûÆð¸ö±ðÃû½Ðrn,¾ÍÊǺóÃæÎ±ÁеÄÃû×Ö£»
ÕâÑùÎÒÃÇÖ´ÐÐÏÂÃæµÄÓï¾ä£¬»á²úÉúÒ»¸öαÁУ¬rn£¬µ±È»Ò»¸öαÁкÍB_idÊDz»Ò»ÑùµÄ
B_id»á³öÏÖÁÑ·ì,¶Ï²ã,µ«ÊÇÕâ¸öαÁÐÊDz»»áµÄ¡£¼´±ãB_idÖмä¶Ï²ã£¬rnÕâ¸öαÁÐÓÀÔ¶
Êǰ´ÕÕ1,2,3,...10. ......
Ò»¡¢oracleµ¼³öexcel
·½·¨Ò»£º×î¼òµ¥µÄ·½·¨---Óù¤¾ßplsql dev
Ö´ÐÐFile =>new Report Window ¡£ÔÚsql±êÇ©ÖÐдÈëÐèÒªµÄsql£¬µã»÷Ö´Ðлò°´¿ì½Ý¼üF8£¬»áÏȳԳö²éѯ½á¹û¡£ÔÚÓҲ๤¾ßÀ¸£¬¿ÉÒÔÑ¡Ôñ°´Å¥Áí´æÎªhtml¡¢copy as html¡¢export results£¬ÆäÖÐexport results°´Å¥ÖоͿÉÒÔµ¼³öexcelÎļþ¡¢csvÎļþ¡¢tsvÎļþ¡¢xmlÎļþ¡£
·½·¨¶þ£º×îרҵµÄ·½·¨---ÓÃÔʼ¹¤¾ßsqlplus
ÔÎIJμû£ºhttp://www.eygle.com/archives/2005/04/eoasqlplusieaae.html
ÎÒ×öÁËÒ»µãÐ޸ģ¬ÈçÏÂËùʾ£º
1.main.sql
ÓÃÒÔÉèÖû·¾³£¬µ÷ÓþßÌ幦Äܽű¾
2.¹¦Äܽű¾-get_tables.sql
ΪʵÏÖ¾ßÌ幦ÄÜÖ®½Å±¾
ͨ¹ýÕâÑùÁ½¸ö½Å±¾¿ÉÒÔ±ÜÃâspoolÖеÄÈßÓàÐÅÏ¢£¬²Î¿¼:
ÈçºÎÈ¥³ýSQLPLUSÖÐSPOOLµÄÈßÓàÐÅÏ¢
ʾÀýÈçÏÂ:
1.main.sql½Å±¾:
[oracle@jumper utl_file]$ more main.sql
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
spool d:\tables.xls
@d:\get_tables.sql
spool off
exit
2.get_tables.sql½Å±¾:
[oracle@jumper utl_file]$ more get_tables.sql
select owner,table_name,tablespace_name,blocks,last_analyz ......
<< 1 >>
decode()º¯數ʹÓü¼ÇÉ
·Èí¼þ»·¾³£º
1¡¢Windows NT4.0+ORACLE 8.0.4
2¡¢ORACLE°²×°Â·¾¶Îª£ºC:\ORANT
·º¬Òå½âÊÍ£º
decode(Ìõ¼þ,Öµ1,·ÒëÖµ1,Öµ2,·ÒëÖµ2,...Öµn,·ÒëÖµn,ȱʡֵ)
¸Ãº¯ÊýµÄº¬ÒåÈçÏ£º
IF Ìõ¼þ=Öµ1 THEN
¡¡¡¡¡¡¡¡RETURN(·ÒëÖµ1)
ELSIF Ìõ¼þ=Öµ2 THEN
¡¡¡¡¡¡¡¡RETURN(·ÒëÖµ2)
¡¡¡¡¡¡¡¡......
ELSIF Ìõ¼þ=Öµn THEN
¡¡¡¡¡¡¡¡RETURN(·ÒëÖµn)
ELSE
¡¡¡¡¡¡¡¡RETURN(ȱʡֵ)
END IF
· ʹÓ÷½·¨£º
1¡¢±È½Ï´óС
select decode(sign(±äÁ¿1-±äÁ¿2),-1,±äÁ¿1,±äÁ¿2) from dual; --È¡½ÏСֵ
sign()º¯Êý¸ù¾Ýij¸öÖµÊÇ0¡¢ÕýÊý»¹ÊǸºÊý£¬·Ö±ð·µ»Ø0¡¢1¡¢-1
ÀýÈ磺
±äÁ¿1=10£¬±äÁ¿2=20
Ôòsign(±äÁ¿1-±äÁ¿2)·µ»Ø-1£¬decode½âÂë½á¹ûΪ“±äÁ¿1”£¬´ïµ½ÁËÈ¡½ÏСֵµÄÄ¿µÄ¡£
2¡¢±í¡¢ÊÓͼ½á¹¹×ª»¯
ÏÖÓÐÒ»¸öÉÌÆ·ÏúÊÛ±ísale£¬±í½á¹¹Îª£º
month¡¡¡¡¡¡ char(6)¡¡¡¡¡¡¡¡¡¡ --Ô·Ý
sell¡¡¡¡¡¡¡¡number(10,2)¡¡¡¡¡¡--ÔÂÏúÊÛ½ð¶î
ÏÖÓÐÊý¾ÝΪ£º
200001¡¡¡¡1000
200002¡¡¡¡1100
200003¡¡¡¡1200
200004¡¡¡¡1300
200005¡¡¡¡1400
200006¡¡¡¡1500
200007¡¡¡¡1600
200101¡ ......
MDSYS.CS_SRS ----- ¸Ã±í¶¨ÒåÁË×ø±êϵµÄÃû×Ö¼°ÆäÔÚOracle SpatialÖеÄIDÖµµÈ£¬ÕâÐ©×ø±êϵ¶¼ÊÇÓÉOpen-GIS¹«²¼µÄ¡£Ä¿Ç°¶¨ÒåµÄ×ø±êϵÒѾ´ïµ½1018¸ö¡£
MDSYS.SDO_ANGLE_UNITS ----- ¸Ã±í¶¨ÒåÁ˽Ƕȵ¥Î»£¬·Ö±ðÊÇDegree,Gon,Grad,Minute,Radian,Second
MDSYS.SDO_DIST_UNITS ----- ¸Ã±í¶¨ÒåÁ˾àÀëµÄµ¥Î»¡£±ÈÈçkm,m£¬¹²ÓÐ27ÖÖ¾àÀ뵥λ¡£
MDSYS.SDO_DATUMS ----- ¸Ã±í¶¨ÒåÁ˳£ÓõÄË®×¼Ãæ£¬±ÈÈçWGS84µÈ£¬¹²¶¨ÒåÁË118ÖÖË®×¼Ãæ¡£
MDSYS.SDO_ELLIPSOIDS ----- ¸Ã±í¶¨ÒåÁ˳£ÓõÄÍÖÇòÌ壬ÈçKrassovskyµÈ£¬¹²¶¨ÒåÁË47¸ö¡£
MDSYS.SDO_PROJECTIONS ----- ¸Ã±í¶¨ÒåÁ˳£ÓõĵØÍ¼Í¶Ó°£¬ÈçMercatorͶӰ¡¢GeographicͶӰ£¬¹²¶¨ÒåÁË42ÖÖͶӰ¡£
WKTEXT¸ñʽ£º----- WKTEXT×Ö¶ÎֵΪOpenGIS¶Ô¿Õ¼ä×ø±êϵµÄÃèÊö¡£Èç¹ûÓû§×Ô¼º¶¨×ø±êϵµÄ»°£¬±ØÐëÑϸñ°´ÕոøñʽÀ´¶¨Ò壬¿ÉÒÔʹÓú¯ÊýSDO_CS.VALIDATE_WKTÀ´ÑéÖ¤¶¨ÒåµÄ×ø±êϵÊÇ·ñ·ûºÏ¸Ã¸ñʽ¡£ ......
create or replace procedure aa1 is
v_aa varchar2(20);
v_bb varchar2(20);
va_aa varchar2(20);
va_bb varchar2(20);
va_number_aa number;
message varchar2(60);
CURSOR aas is
SELECT DISTINCT aa.aa, aa.bb from aa;
CURSOR aaas is
SELECT DISTINCT aaa.aa, aaa.bb from aaa where aaa.aa = v_aa;
begin
OPEN aas;
FETCH aas INTO v_aa, v_bb;
WHILE aas%FOUND LOOP
OPEN aaas;
FETCH aaas INTO va_aa, va_bb;
WHILE aaas%FOUND LOOP
begin
va_number_aa :=to_number(va_bb);
exception
when others then
message:='ddddddddddddd';
end;
commit;
FETCH aaas INTO va_aa, va_bb;
END LOOP;
CLOSE aaas;
FETCH aas INTO v_aa, v_bb;
END LOOP;
CLOSE aas;
end aa1;
---------------------------------------------------
declare
v_id0000 char(2);
cursor c1 is select id00,name00 from a;
cursor c2 is select * from b where id0000=v_id0000;
......