2009-08-21 5 views
0

Sybase ASAにストアドプロシージャ 'テスト'があります(例:4パラメータ)。Sybase ASA 9ストアドプロシージャ、デフォルトパラメータを使用

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

1)最初の例では動作しませんでした。

2)あなたのSP(どのような構文でも "par1"について聞いたことがない)は ですが、標準構文を使用していますが、SPの名前付きパラメータを使用する必要がありますコール:

手順テストを作成(INOUT VAR1 INTのDEFAULT 0、次いで

    INOUT var2 VARCHAR(50) DEFAULT NULL, 

        INOUT var3 VARCHAR(100) DEFAULT NULL, 

        INOUT var3 VARCHAR(10) DEFAULT '') 

と呼び出す

CALLテスト(VAR2は= 'テスト')

+0

パラメータ名とそのデフォルト値の一例に過ぎだった[引用]( "PAR1" を聞いたことがない)[/引用] 。 – jwdehaan

+0

ああそれ。私は、遭遇したことのない奇妙なASA構文であると仮定していました(複数のものがあるようです) – DVK

0

あなたが手順のPAR1が1であることを確信している - 私はそれが本当にあなたが渡された値をnullであると考えている場合poarameterはないで渡されていない場合

デフォルトパラメータのみが使用されています。 NULLであっても値が与えられています。したがって、あなたの中に

はPAR3をCSESとPAR4はデフォルトが、PAR1を取得し、PAR2は、あなたが渡すものを手に入れる。あなたはNULL値に渡されたので

関連する問題