存储过程参数默认值
创建过程也是一种DDL操作,这样的话应该是支持默认值的。
2. 创建一个带参数默认值的存储过程,通过传递参数为true或FALSE值,来查询是党
摘要 创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用唯一的名称进行定义。与T-SQL变量相同,参数名必须以@为前缀,并且遵从标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。
3. 在存储过程中怎么给输入参数设置默认值
create proc | procere pro_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
SQL_statements
4. SQL 存储过程中参数怎么使用
参数定义
单个参数
1>
CREATE
PROCEDURE
HelloWorld1
2>
@UserName
VARCHAR(10)
3>
AS
4>
BEGIN
5>
PRINT
'Hello'
+
@UserName
+
'!';
6>
END;
7>
go
1>
DECLARE
@RC
int;
2>
EXECUTE
@RC
=
HelloWorld1
'Edward'
;
3>
PRINT
@RC;
4>
go
HelloEdward!
0
IN、OUT、IN
OUT
注:
SQL
Server
的
OUTPUT
需要写在变量数据类型后面。
SQL
Server
没有
IN
OUT
关键字
OUTPUT
已经相当于
IN
OUT
了。
1>
CREATE
PROCEDURE
HelloWorld2
2>
@UserName
VARCHAR(10),
3>
@OutVal
VARCHAR(10)
OUTPUT,
4>
@InoutVal
VARCHAR(10)
OUTPUT
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@InoutVal
+
'!';
8>
SET
@OutVal
=
'A';
9>
SET
@InoutVal
=
'B';
10>
END;
11>
go
1>
2>
DECLARE
@RC
int,
@OutVal
VARCHAR(10),
@InoutVal
VARCHAR(10);
3>
BEGIN
4>
SET
@InoutVal
=
'~Hi~';
5>
EXECUTE
@RC
=
HelloWorld2
'Edward',
@OutVal
OUTPUT,
@InoutVal
OUTPUT;
6>
PRINT
@RC;
7>
PRINT
'@OutVal='
+
@OutVal;
8>
PRINT
'@InoutVal='
+
@InoutVal;
9>
END
10>
go
Hello
Edward~Hi~!
0
@OutVal=A
@InoutVal=B
参数的默认值
1>
CREATE
PROCEDURE
HelloWorld3
2>
@UserName
VARCHAR(10),
3>
@Val1
VARCHAR(20)
=
'
Good
Moning,',
4>
@Val2
VARCHAR(20)
=
'
Nice
to
Meet
you'
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@Val1
+
@Val2
+
'!';
8>
END;
9>
go
1>
2>
DECLARE
@RC
int;
3>
BEGIN
4>
EXECUTE
@RC
=
HelloWorld3
'Edward';
5>
PRINT
@RC;
6>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,';
7>
PRINT
@RC;
8>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,',
'
Bye';
9>
PRINT
@RC;
10>
END
11>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
指定参数名称调用
此部分使用
“参数默认值”那一小节的存储过程。
用于说明当最后2个参数是有默认的时候,如何跳过中间那个。
1>
DECLARE
@RC
int;
2>
BEGIN
3>
EXECUTE
@RC
=
HelloWorld3
'Edward';
4>
PRINT
@RC;
5>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,';
6>
PRINT
@RC;
7>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,',
@Val2='
Bye';
8>
PRINT
@RC;
9>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val2='
HeiHei
';
10>
PRINT
@RC;
11>
END
12>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
Hello
Edward
Good
Moning,
HeiHei
!
0
5. oracle中,创建函数和存储过程时,默认值怎么处理
你说的这种情况可以用下面的这种调用方式来防止
PKG_XXX.PRC_XXX(o_nextBusinessDtNum => dateCnt,
o_processDate => processDt,
o_retCode => retCode,
o_errRec => errRec);
=>左边是PKG_XXX.PRC_XXX里定义的名字,右边是调用PKG_XXX.PRC_XXX时用于接收或者传入的变量,你说的情况就解决了。
6. 存储过程参数输入和输出参数有什么作用
无论是输入的参数还是输出的参数,在此过程中都视为一个参数,所以一般情况下对应你定义的参数类型和个数带入,便可调用。
存储过程后面的是参数列表,其实存储过程就是个方法,通过传递参数来指导方法完成。输出参数相当于返回值,会带output关键字。
其它参数要提前赋值,而output不需要提前赋值,只需要提供一个变量,在存储过程执行完的时候,output类型的变量值就会修改,获得返回值,只能通过这个方法获得返回值,而不能像函数一样直接返回结果。因为存储过程是没有返回值的。
(6)存储过程参数默认值扩展阅读:
[内定值]相当于在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。
7. sql存储过程参数可省略吗 存储过程中参数都有默认值,调用时可不可以不传参数呢
可以省略参数
create function 拥有者.函数名(参数名 类型)
这是创建函数的SQL Server句头 可省略括号中的参数 但不可省略括号
在sql server中 执行带参数的存储过程
exec+空格+存储过程名+空格+参数
多个参数的话用逗号分隔 传出参数要加output
例如:
exec P_GetIntegratedFluxOneMoment @StartTableName,@ColName,@StartTime,@StartValue output
其中@StartTableName,@ColName,@StartTime,@StartValue都是前面已经定义好的变量 传入参数也可以不用变量 直接写值也行
程序中调用的话看你用什么语言了 各个语言的调用方法不一样
8. 存储过程输入参数设置默认值问题
问题补充:如果例中,动作=“入库” ; 日期 的默认值应该设置多少? 你在存储过程里,给这个参数一个默认值就ok了。 这里应该有三个参数吧,
9. sql存储过程输出参数能带默认值吗
可以,输出参数首先会作为输入参数使用。如果在过程中不更改,那么输出就是默认值。
10. ORACLE存储过程带默认值的参数怎么处理
你说的这种情况可以用下面的这种调用方式来防止
pkg_xxx.prc_xxx(o_nextbusinessdtnum
=>
datecnt,
o_processdate
=>
processdt,
o_retcode
=>
retcode,
o_errrec
=>
errrec);
=>左边是pkg_xxx.prc_xxx里定义的名字,右边是调用pkg_xxx.prc_xxx时用于接收或者传入的变量,你说的情况就解决了。