MYSQL编程:利用oralce Cursor
使用它开发程序也是非常简单的。”利用Cursor:declare
RoomIDRoom.RoomID%Type;
RoomNameRoom.RoomName%Type;
cursorcrRoomis
selectRoomID,RoomName
fromRoom;
begin
opencrRoom;
loop;
fetchcrRoomintoRoomID,RoomName;
exitwhencrRoom%notFound;
endloop;
closecrRoom;
end;
3.1在游标利用出口参数
在SQL语句的Where子句中得当利用相干语句简化逻辑,原本必要利用两个游标,把相干出口参数放进到SQL语句的Where子句中,一个就弄定了:
cursorcrRoomis
select
distinct楼层,衡宇用处
fromTT_没有处置的衡宇t
where数据级别>=0
and衡宇处置种别=3
and产权编号=p_产权编号
and拆迁衡宇种别=p_拆迁衡宇种别
and面积>0
and(notp_衡宇用处isnull
and衡宇用处=p_衡宇用处
orp_衡宇用处isnull);
别的一个例子:
CREATEORREPLACEPROCEDUREPrintStudents(
p_MajorINstudents.major%TYPE)AS
CURSORc_StudentsIS
SELECTfirst_name,last_name
FROMstudents
WHEREmajor=p_Major;
BEGIN
FORv_StudentRecINc_StudentsLOOP
DBMS_OUTPUT.PUT_LINE(v_StudentRec.first_name||||
v_StudentRec.last_name);
ENDLOOP;
END;
Oracle带的例子examp6.sql
DECLARE
CURSORbin_cur(part_numberNUMBER)ISSELECTamt_in_bin
FROMbins
WHEREpart_num=part_numberAND
amt_in_bin>0
ORDERBYbin_num
FORUPDATEOFamt_in_bin;
bin_amtbins.amt_in_bin%TYPE;
total_so_farNUMBER(5):=0;
amount_neededCONSTANTNUMBER(5):=1000;
bins_looked_atNUMBER(3):=0;
BEGIN
OPENbin_cur(5469);
WHILEtotal_so_far<amount_neededLOOP
FETCHbin_curINTObin_amt;
EXITWHENbin_cur%NOTFOUND;
/*Ifweexit,theresnotenoughto*
*satisfytheorder.*/
bins_looked_at:=bins_looked_at+1;
IFtotal_so_far+bin_amt<amount_neededTHEN
UPDATEbinsSETamt_in_bin=0
WHERECURRENTOFbin_cur;
--takeeverythinginthebin
total_so_far:=total_so_far+bin_amt;
ELSE--wefinallyhaveenough
UPDATEbinsSETamt_in_bin=amt_in_bin
-(amount_needed-total_so_far)
WHERECURRENTOFbin_cur;
total_so_far:=amount_needed;
ENDIF;
ENDLOOP;
CLOSEbin_cur;
INSERTINTOtempVALUES(NULL,bins_looked_at,<-binslookedat);
COMMIT;
END;
--Createdon2004-8-9byADMINISTRATOR
declare
--带有变量的Cursor
cursorcrBooks(c_bookTitlevarchar2)is
select*
frombooksa
wherea.titlelikec_bookTitle||%;
begin
forv_BooksincrBooks(Oracle8)loop
dbms_output.put_line(v_Books.author1);
endloop;
end;如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL。 所以你总能得到相应的升级版本,来满足你的需求。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 对于微软系列的东西除了一遍遍尝试还真没有太好的办法 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
页:
[1]