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

Parameters Sybase ASA 9存储过程,使用默认参数,parameters,sybase-asa,Parameters,Sybase Asa,我在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') 但是它不会运行。在您的第一次执行中,您确定过

我在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')

但是它不会运行。

在您的第一次执行中,您确定过程中的par1是1吗?我认为您传入的值实际上是NULL

默认参数仅在POParameter未传入的情况下使用,而不是在POParameter已给定值的情况下使用,即使该值为NULL

因此,在CSE中,par3和par4获得默认值,而par1和par2获得传入的值。

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

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

创建过程测试(INOUT var1 INT默认值为0

                   INOUT var2 VARCHAR(50)  DEFAULT NULL,

                   INOUT var3 VARCHAR(100) DEFAULT NULL,

                   INOUT var3 VARCHAR(10)  DEFAULT '')
然后打电话

调用测试(var2='test')


[quote](从未听说过“par1”)[/quote]这只是一个参数名及其默认值的示例。哦,就是这样。我假设这是我从未遇到过的奇怪ASA语法(似乎不止一个)