oracle 存储过程基础知识1
2009-09-08 09:41
288 查看
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!NT 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&yT#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}wk)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
Xql3M
RECOMPILE 表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,请使用 RECOMPILE 选项。51Testing软件测试网;?!y!CA7w{Oq@
G:Vr,_V1wvY|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
创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 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!NT 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&yT#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}wk)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
Xql3M
RECOMPILE 表明 SQL Server 不会缓存该过程的计划,该过程将在运行时重新编译。在使用非典型值或临时值而不希望覆盖缓存在内存中的执行计划时,请使用 RECOMPILE 选项。51Testing软件测试网;?!y!CA7w{Oq@
G:Vr,_V1wvY|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
相关文章推荐
- oracle 存储过程基础知识2
- oracle 存储过程基础知识3
- ORACLE 有关存储过程的一些基础知识
- oracle 存储过程基础知识
- Oracle基础知识3----存储过程、存储函数、out参数、包
- Orcale存储过程基础知识
- SQL Server之存储过程基础知识
- 关于SQL 存储过程入门基础(基础知识)
- 教学思路SQL之入门习题《学生成绩》 七.存储过程基础知识
- SQL使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
- SQL Server之存储过程基础知识
- SQL Server之存储过程基础知识(1)
- oracle 存储过程基础
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
- SQL Server之存储过程基础知识
- SQL server存储过程基础知识
- MySql存储过程—1、SQL存储过程的基础知识
- Oracle基础知识之物理存储结构
- 存储过程基础知识
- MySQL存储过程和函数(1) - 基础知识