首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sybase ASA 9存储过程,使用默认参数

Sybase ASA 9存储过程,使用默认参数
EN

Stack Overflow用户
提问于 2009-08-21 14:34:10
回答 2查看 2.4K关注 0票数 0

我在Sybase ASA中有一个存储过程‘’test‘,例如有4个参数。

代码语言:javascript
复制
par1 INT = 0,
par2 VARCHAR(50) = NULL,
par3 VARCHAR(100) = NULL,
par4 VARCHAR(10) = ''

现在,我想使用par1作为默认值来执行这个存储过程。

代码语言:javascript
复制
call test(NULL, 'test')

但是par1的实际值i不是0,而是1!

我也试过了

代码语言:javascript
复制
call test(DEFAULT, 'test')

但这并不能运行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-03 19:43:30

1)第一个示例不起作用,因为您传入了空值。

2)我不太清楚您使用的是哪种语法(从未听说过"par1"),但是使用标准语法,您需要做的是在SP和调用中命名参数:

CREATE PROCEDURE测试( INOUT var1 INT DEFAULT 0,

INOUT var2 VARCHAR(50)默认NULL,INOUT var3 VARCHAR(100)默认NULL,INOUT var3 VARCHAR(10)默认'')

然后调用

测试调用测试(var2 =‘

’)

票数 1
EN

Stack Overflow用户

发布于 2009-08-21 23:37:15

在你第一次执行的时候,你确定过程中的par1是1吗--我认为它实际上是空的,你传入的值。

仅当未传入参数参数时才使用默认参数,如果已为其指定了值(即使该值为空),则使用默认参数。

因此,在您的cses中,par3和par4获取默认值,而par1和par2获取您传入的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1312336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档