0

こんにちは私は.netWebアプリケーションで次のストアドプロシージャを実行しました。次に、アプリケーションを実行します。このエラーが発生しました

「ゼロ除算エラー」

ストアドプロシージャ:

CREATE procedure Details(@Stringtext varchar(8000),@SearchStringtext varchar(100))
as begin
SELECT ({fn LENGTH(@Stringtext)}-
{fn LENGTH({fn REPLACE(@Stringtext, @SearchStringtext, '')})})/
{ fn LENGTH(@SearchStringtext)}AS String_Count

end
4

6 に答える 6

3

明らかに:

{ fn LENGTH(@SearchStringtext)}

...ゼロに評価しています。

于 2009-01-02T11:13:40.873 に答える
1

SearchStringtextが空の場合、その長さは0になります。したがって、ストアドプロシージャはゼロで除算しようとします(これは未定義の処理です)。

つまり、次の部分はゼロになります。

{ fn LENGTH(@SearchStringtext)}

SearchStringtextが空の場合に除算が発生しないように、ロジック(おそらくifステートメント)を追加することをお勧めします。

于 2009-01-02T11:15:14.817 に答える
1

SearchStringTextの長さはゼロであるため、ゼロ除算エラーが発生します。関数が呼び出されるときに、文字列の長さがゼロ以外であることを確認してください。または、選択を行う前に長さを確認してください

于 2009-01-02T11:16:39.587 に答える
1
{ fn LENGTH(@SearchStringtext)}

は 0 に評価されています。

しかし、なぜこれがストアド プロシージャなのでしょうか。データベース機能を使用していませんか? これが単純化された問題でない限り、このすべて (長さ、置換など) は .net アプリケーションで実行できます。

于 2009-01-02T11:19:54.213 に答える
1

この手順の唯一の除算演算はfn LENGTH(@SearchStringtext)、除数として持ちます。

したがって、長さは**SearchStringtext**ゼロに評価されるようです。空の文字列を検索しようとしている可能性があります。

質問内容とDBプラットフォームをご確認の上、ご記入ください。

于 2009-01-02T11:24:36.030 に答える
0

SearchStringtextの長さは0のようです。したがって、プロシージャはゼロで除算しようとします。

于 2009-01-02T11:14:04.803 に答える