oracle 存储过程基础知识1

CREATE PROCEDURE51Testing软件测试网/*H||0THXQ6k
创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。也可以创建在 Microsoft SQL Server启动时自动运行的存储过程。/4E;rX,T G0 51Testing软件测试网%BG |'b(G{

语法51Testing软件测试网!c l"M;_6du_
CREATE PROC [ EDURE ] procedure_name [ ; number ]51Testing软件测试网*@Qm UM8h oBW
    [ { @parameter data_type }
#fA'z+s1vr#P f1}0         [ VARYING ] [ = default ] [ OUTPUT ]51Testing软件测试网�KcN+Wz S)OB7l
    ] [ ,...n ]

VHk.o-ZD0

!F:P&DIr I0 [ WITH
Wm6_ N#rwDPx!x|0     { RECOMPILE ENCRYPTION RECOMPILE , ENCRYPTION } ]51Testing软件测试网IM ]&}K

?Y(Lmp�id0 [ FOR REPLICATION ]

M(V-t0w3g&j#bF0

*beo"nr/i1mIA0 AS sql_statement [ ...n ]

T?O{;e0 51Testing软件测试网4s*xz5LCb&e&j}


Ne!N T f{0 参数51Testing软件测试网,a`.sg5|F
procedure_name51Testing软件测试网/M3P/@6aD S?E^'|

51Testing软件测试网 o^A)zb'G

    新存储过程的名称。过程名必须符合标识符规则,且对于数据库 及其所有者必须唯一。有关更多信息,请参见使用标识符。51Testing软件测试网_]zs2At~;H0b Q
    要创建局部临时过程,可以在 procedure_name 前面加一个编号符 (#procedure_name),要创建全局临时过程,可以在 procedure_name 前面加两个编号符 (##procedure_name)。完整的名称(包括 # 或 ##)不能超过 128 个字符。指定过程所有者的名称是可选的。

l@:wev Gy0

*[yG1}et-k0 ;number51Testing软件测试网1W8f&y T#J m$yzX
    是可选的整数,用来对同名的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procedure_name 前后使用适当的定界符。51Testing软件测试网4^%n!z,XpW I(Z

:}+T6^#[/B?8an/N0 @parameter

9x|6D:bTf0

)u)c,M)nJ2/+UL&j0 过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有 2.100 个参数。

*}'}&z2dl9j0A~@cO0

? /1g'Z%t0 使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它 过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。有关更多信息,请参见 EXECUTE。

k'Z`6dV'j"e0

laq"vwP2I0 data_type

Y5UM~L K;d S*Yj0

+PA#v:r/PAq0 参 数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字。有关 SQL Server 提供的数据类型及其语法的更多信息,请参见数据类型。

2D;]4^w-Vz }/wT0 51Testing软件测试网M:N _i/F8~o*`3r


_iX"u$zq0 说明 对于可以是 cursor 数据类型的输出参数,没有最大数目的限制。51Testing软件测试网} V} e(I,]D

51Testing软件测试网V!q mI/Qt.f(p@


M,ukEki0 VARYING

lNE_#F O"[0 51Testing软件测试网2P8w$Z/k,/|(s:q

指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。51Testing软件测试网l*?"Lb+J4/bF"@t%M5R

j].I;K*qc'x3/*P0 default51Testing软件测试网C3}:T9Jb XI

#WM1QIOT0C,]0 参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或 NULL。如果过程将对该参数使用 LIKE 关键字,那么默认值中可以包含通配符(*、_、[] 和 [^])。51Testing软件测试网0xZ!Ijb/e~4J

$H b8~.M+KuH0 OUTPUT

y@*nQ$vas0 51Testing软件测试网0}HBJA%x N(I$Z;O

表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。51Testing软件测试网?:S:ipT

51Testing软件测试网5oQ"z s7gsl

n

mv(x&K}w k)N0 51Testing软件测试网6M j(O{�bq,R1jkM

表示最多可以指定 2.100 个参数的占位符。51Testing软件测试网k3~5KCS8l$C

51Testing软件测试网'we ze.BXRF,K

{RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION}

*F aAm(yQ0 51Testing软件测试网J+O'z Xq l3M

RECOMPILE 表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,请使用 RECOMPILE 选项。51Testing软件测试网;?!y!CA7w{Oq@

G:Vr,_V1wv Y|0 ENCRYPTION 表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 语句文本的条目。使用 ENCRYPTION 可防止将过程作为 SQL Server 复制的一部分发布。

说明 在升级过程中,SQL Server 利用存储在 syscomments 中的加密注释来重新创建加密过程。51Testing软件测试网/H&bB/I!py;kAmZ ]

51Testing软件测试网^.T6NvWL

Dk9oS�~W1A{$V.t0 51Testing软件测试网2u&e/(uO-d+D
FOR REPLICATION51Testing软件测试网d;P;G#u$x q

51Testing软件测试网apt!x0Mw ^2fZ"mwZ`

指定不能在订阅服务器上执行为复制创建的存储过程。.使用 FOR REPLICATION 选项创建的存储过程可用作存储过程筛选,且只能在复制过程中执行。本选项不能和 WITH RECOMPILE 选项一起使用。51Testing软件测试网qI3C.o7o.R1A0X

^"k4uZT4z/T0 AS

2PL7Av:`,?4V4P9G0 51Testing软件测试网A8pZ(J&A,^s(T

指定过程要执行的操作。51Testing软件测试网W!S C{ D5f^:~

e;W+f/_$G0U0 sql_statement

(E./Uw kO;B/%bE0 51Testing软件测试网/c$d|L5d$U$|

过程中要包含的任意数目和类型的 Transact-SQL 语句。但有一些限制。

KtC%Y /tqP0

Nm"v8^ _0 n51Testing软件测试网P*}C6K0p

51Testing软件测试网 sX ]&]uh7`~

是表示此过程可以包含多条 Transact-SQL 语句的占位符。

&PAfq [0 51Testing软件测试网1|!u9F7?:fOi+F

 

转自 http://www.51testing.com/?66770

51Testing软件测试网]&y

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值