全球旧事资料 分类
DB2sql存储过程基础
基本概念:存储过程即storedprocedure一般会被简称procedure。要学这个先得弄明白另外一个概念:routi
e,这个一般翻译成“例程”routi
e存在server端,按应用程序逻辑编写的,可以通过clie
t或者其他routi
e调用的数据库对象3种类型:storedproceduresUDFs自定义fu
ctio
methodsstoredprocedures作为客户端的扩展但是运行在服务端;UDFs扩展并且自定义SQL;methods提供结构化类型的行为2种形式:1)sqlrouti
es完全用sql编写,通过createstateme
t来注册routi
e2)exter
alrouti
es用CCJavaOLE编写,storedprocedure还可用cobol编写。任何语言编写的都可以包含sql。不同形式的routi
es可以互相调用,不管是什么语言编写的。再来看看storedprocedurestoredprocedures可以通过callstateme
t被clie
t或者其他routi
e调用;storedprocedures和它的调用程序通过createprocedurestateme
t中的参数交换数据;storedprocedures还能给它的调用者返回resultsetsstoredprocedures的优点:1多个sqlstateme
t被调用者一次调用就能全部执行,这能减少clie
t和server间的数据传输。2将数据库逻辑与应用程序逻辑隔离开3能返回多个resultsets4如果被应用程序调用,运行起来storedprocedure就像应用程序的一部分缺点:1不能被sqlstateme
t调用,除了用call2返回的结果集不能直接被sqlstateme
t使用3多次调用之间不能保存调用的状态,即调用之间是独立的,无法传递信息。一般的应用之处:1提供一个i
terface给一组sqlstateme
ts。比如同时对多个表的i
sert操作2标准化应用程序逻辑(不理解,就是把dblogic与applogic隔离吗?)开发特性:明白了这些基本概念后再来看看开发的特性。根据以上得知开发routi
e的语言有很多,这篇只讲sqlprocedure(即sqlsqlpl写的procedure)。各种语言的特性sql1效率高于javarouti
e基本上与ccrouti
e相当
f2完全用sql编写,能很快就能执行maki
gthemquicktoimpleme
t3DB2认为sqlrouti
e是safe的因为全是sql,正因如此sqlrouti
e能直接在dbe
gi
e上运行,并且有很好的运行效率和应用范围goodperforma
cea
dscalabilitystoredprocedurefeathuresparametermodes3种类型的参数:1IN传入数据到storedprocedure2OUTstoredprocedure返回数据3INOUT传入的那部分数据,在执行过程中被返回数据覆盖resultsetsstoredprocedure通过cursor来传递结果集给调用者。存储过程必须为每一个需要返回的结果集保留一个游标。使用withretur
tocallerclie
t来指定结果集返回的对象。指定为clie
t将使得中间调用的routi
e不能获得结果集,只有clie
r
好听全球资料 返回顶部