Parameters Sybase ASA 9存储过程,使用默认参数
我在Sybase ASA中有一个存储过程“test”,其中包含例如4个参数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') 但是它不会运行。在您的第一次执行中,您确定过
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语法(似乎不止一个)