Sybase ASA 9 存储过程,使用默认参数
我在 Sybase ASA 中有一个存储过程“test”,例如有 4 个参数。
par1 INT = 0,
par2 VARCHAR(50) = NULL,
par3 VARCHAR(100) = NULL,
par4 VARCHAR(10) = ''
现在我想用 par1 作为默认值来执行这个存储过程。
call test(NULL, 'test')
但par1的实际值不是0,而是1!
我也尝试过
call test(DEFAULT, 'test')
,但没有运行。
I have a stored procedure'test' in Sybase ASA with for example 4 parameters.
par1 INT = 0,
par2 VARCHAR(50) = NULL,
par3 VARCHAR(100) = NULL,
par4 VARCHAR(10) = ''
Now I want to execute this stored procedure with par1 as its default value.
call test(NULL, 'test')
But the actual value of par1 i not 0, but 1!
I also tried
call test(DEFAULT, 'test')
but that doesn't run.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
1) 第一个示例不起作用,因为您传入了 NULL 值。
2)我不太确定你的 SP 使用哪种语法(从未听说过“par1”),
但使用标准语法,您需要做的是在 SP 和调用中具有命名参数:
然后调用
1) The first example did not work because you passed in a NULL value.
2) I'm not quite sure of which syntax you are using for his SP (never heard of "par1"),
but using standard syntax, what you need to do is to have named parameters in SP and in the call:
and then call
在你的第一次执行中,你确定过程中的 par1 是 1 - 我认为你传入的值实际上是 NULL。
默认参数仅在未传入 poarameter 时使用,而不是在已给定值的情况下使用,即使它为 NULL。
因此,在您的 cses 中,par3 和 par4 获得默认值,但 par1 和 par2 获得您传入的内容。
In your first execution are you sure that par1 in the procedure is 1 - I think it is really NULL the value you passed in.
Default parameters are only used if the poarameter is not passed in not if it has been given a value even if it is NULL.
Thus in you cses par3 and par4 get the default but par1 and par2 get what you pass in.