我在Sybase ASA存储procedure'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')

但是,这并不运行。

有帮助吗?

解决方案

1)的第一个例子并不工作,因为你在一个NULL值传递。

2)我不太清楚其中的语法使用的是他的SP(从来没有听说过“PAR1”)的,  但使用标准语法,你需要做的是在SP已命名的参数,并在呼叫:

  

CREATE PROCEDURE测试(INOUT VAR1 INT DEFAULT 0,

                   INOUT var2 VARCHAR(50)  DEFAULT NULL,

                   INOUT var3 VARCHAR(100) DEFAULT NULL,

                   INOUT var3 VARCHAR(10)  DEFAULT '')

和再调用

  

CALL测试(VAR2 = '测试')

其他提示

在你的第一个执行你确定PAR1在程序1 - 我觉得实在是NULL您传入的值

。 如果它已被赋予即使它是一个NULL值,如果poarameter未在不通过

默认参数仅使用。

因此,在您的CSE PAR3和PAR4得到默认,但PAR1和PAR2让你在传递什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top