PL/SQLѧϰ±Ê¼Ç¶þ
1.³£Á¿
¶¨ÒåÓï·¨¸ñʽ£º
³£Á¿Ãû constant ÀàÐͱêʶ·û [not null]:=Öµ;
È磺PI constant number(9):=3.1415;
2.»ù±¾Êý¾ÝÀàÐͱäÁ¿
»ù±¾Êý¾ÝÀàÐÍ
number Êý×ÖÐÍ
int ÕûÊýÐÍ
pls_integer ÕûÊýÐÍ£¬²úÉúÒç³öʱ³öÏÖ´íÎó
binary_integer ÕûÊýÐÍ£¬±íʾ´ø·ûºÅµÄÕûÊý
char ¶¨³¤×Ö·ûÐÍ£¬×î´ó255¸ö×Ö·û
varchar2 ±ä³¤×Ö·ûÐÍ£¬×î´ó2000¸ö×Ö·û
long ±ä³¤×Ö·ûÐÍ£¬×î´ó2GB
date ÈÕÆÚÐÍ
boolean ²¼¶ûÐÍ£¨true,false,nullÈýÕßÖ®Ò»£©
»ù±¾Êý¾ÝÀàÐͱäÁ¿µÄ¶¨ÒåÓï·¨¸ñʽ
±äÁ¿Ãû ÀàÐͱêʶ·û [not null]:=Öµ;
È磺myvar varchar2(10):='right';
3.¸´ºÏÊý¾ÝÀàÐͱäÁ¿
3.1 ±í×Ö¶ÎÀàÐͱäÁ¿(ʹÓÃ%type¶¨Òå)
±äÁ¿µÄÀàÐÍÓëÊý¾Ý±íÖеÄ×ֶεÄÊý¾ÝÀàÐÍÒ»Ö¡£µ±Êý¾Ý¿â±íµÄ×Ö¶ÎÀàÐÍÐ޸ĺó£¬ÏàÓ¦µÄ±äÁ¿µÄÀàÐÍÒ²×Ô¶¯Ð޸ġ£
¶¨ÒåÓï·¨¸ñʽ£º±äÁ¿Ãû ±í×Ö¶ÎÃû%type;
È磺mydate tempuser.testtable.currentdate%type ¶¨ÒåÁËÃûΪmydateµÄ±äÁ¿£¬ÆäÀàÐÍÓëtempuser.testtable±íÖеÄcurrentdate×Ö¶ÎÀàÐÍÒ»Ö¡£
3.2 ¼Ç¼ÀàÐͱäÁ¿
¼Ç¼ÀàÐͶ¨ÒåÓï·¨¸ñʽ£º
type Êý¾ÝÀàÐÍÃû is record(
×Ö¶Î1 ÀàÐͱêʶ·û1£¬
×Ö¶Î2 ÀàÐͱêʶ·û2£¬
...
);
¼Ç¼ÀàÐͱäÁ¿¶¨Ò壺
±äÁ¿Ãû Êý¾ÝÀàÐÍÃû;
È綨Òå¼Ç¼ÀàÐÍ£º
type myrecord is record(myrecordnumber int, mycurrentdate date);
¶¨ÒåmyrecordÀàÐͱäÁ¿srecord£º
srecord myrecord;
·ÃÎÊmyrecordnumber×Ö¶ÎÖµ£º
srecord.myrecordnumber
×¢Ò⣺×Ö¶Î1£¬×Ö¶Î2µÈÒ²¿ÉÒÔÊǸ´ºÏÊý¾ÝÀàÐÍ¡£
3.3 ±í¼Ç¼ÐͱäÁ¿£¨Ê¹ÓÃ%rowtype¶¨Ò壩
¶¨ÒåÓï·¨¸ñʽ£º±äÁ¿Ãû ±íÃû%rowtype
±äÁ¿¿ÉÒÔ»ñµÃÕû¸ö±í¼Ç¼µÄÊý¾ÝÀàÐÍ£¬Ï൱ÓÚÏȶ¨ÒåÁËÒ»¸ö¼Ç¼ÀàÐÍ£¬Æä¸÷×Ö¶ÎÀàÐÍ·Ö±ð¶ÔÓ¦±íµÄ¸÷×Ö¶ÎÀàÐÍ£»È»ºóÔÙ¶¨ÒåÕâÖּǼÀàÐ͵ıäÁ¿
3.4 һά±íÀàÐͱäÁ¿
¶¨ÒåÓï·¨¸ñʽ£º
type ±íÀàÐÍ is table of ÀàÐÍ index by binary_integer;
±íÀàÐͱäÁ¿Ãû ±íÀàÐÍ;
Ï൱¶¨ÒåһάÊý×飬ÕâÀïµÄÀàÐÍ¿ÉÒÔÊÇÇ°ÃæµÄÀàÐͶ¨Ò壬index by binary_integer×Ó¾ä´ú±íÒÔ·ûºÅÕûÊýΪË÷Òý£¬ÕâÑù·ÃÎʱíÀàÐͱäÁ¿ÖеÄÊý¾Ý·½·¨¾ÍÊÇ“±í±äÁ¿Ãû(Ë÷Òý·ûºÅÕûÊý)“¡£
ʾÀý£º
declare
type tabletype1 is table of varchar2(4) index by binary_integer; --¶¨Òåһά±íÀàÐÍtabletype1
type tabletype2 is table of tempuser.testtable."recordnumber"%type index by binary_integer; --
Ïà¹ØÎĵµ£º
SQL Server 2005±¨ÁËÕâô¸ö´í£ºCannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "Chinese_PRC_90_CI_AS" in the like operation.
ºó²éÖ¤£¬ÕâÊÇÓÉÓÚÁ½¸ö×ö±È½ÏµÄÁеÄÅÅÐò·½Ê½²»Í¬£¬ÖÐÎÄÓкܶàÖÖÅÅÐò·½Ê½£¬¶ÔÓ¦ÈçÏ£º
ÖÐÎÄ£¨Ïã¸ÛÌØ±ðÐÐÕþÇø£©
Chinese_Hong_Kong_Stroke_90_CI_AS
ÖÐÎÄ£¨Ïã¸ÛÌØ±ðÐ ......
Ò»¡¢ÈçºÎ´ÓselectµÄ²éѯ½á¹ûÖÐÔÙ´ÎÔËË㣿
µÚÒ»²½£º
´Ö²éѯ¡£Ê×ÏÈÐèÒª½«µÚÒ»²ã²éѯŪ¶Ô£¬¹ØÏµÅªÇå³þ¡£
select sum(quantity) total ,price_water,price_pollute from pay_water where time_pay >='2010-02-01 00:00:00.000' and time_pay <'2010-02-28 23:59:59.000'
group by price_water,price_pollute
µÚ¶þ²½ ......
1¡¢SessionÓÐÊ²Ã´ÖØ´óBUG£¬Î¢ÈíÌá³öÁËʲô·½·¨¼ÓÒÔ½â¾ö£¿
´ð£ºÊÇiisÖÐÓÉÓÚÓнø³Ì»ØÊÕ»úÖÆ£¬ÏµÍ³·±Ã¦µÄ»°Session»á¶ªÊ§£¬¿ÉÒÔÓÃSate server»òSQL ServerÊý¾Ý
¿âµÄ·½Ê½´æ´¢Session²»¹ýÕâÖÖ·½Ê½±È½ÏÂý£¬¶øÇÒÎÞ·¨²¶»ñSessionµÄENDʼþ¡£
2.²úÉúÒ»¸öintÊý×飬³¤¶ÈΪ100£¬²¢ÏòÆäÖÐËæ»ú²åÈë1-100£¬²¢ÇÒ²»ÄÜÖØ¸´¡£
C# ......
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[pagination]
@tblName varchar(255), -- ±íÃû
@strGetFields varchar(1000), -- ÐèÒª·µ»ØµÄÁÐ
@fldName varchar(255), -- ÅÅÐòµÄ×Ö¶ÎÃû
@PageSize int, -- Ò³³ß´ç
@PageIndex int, -- Ò³Âë
@OrderType bit, -- ÉèÖÃÅÅÐòÀàÐÍ, ·Ç 0 Öµ ......
Select * from t_user_profile where convert ( varchar ( 21 ),regDate, 120 ) like ' 2008-05-07% ' ±íÃû³Æ£ºt_user_profile ÈÕÆÚ×Ö¶ÎÃû³Æ£ºregDate
Select * from t_user_profile where convert(varchar(21),regDate,120) like '2008-05-07%'< ......