ich habe ein Programm geschrieben, welches auch wunderbar funktioniert. Macht verschiedene Eingaben und Änderungen in einem SQL Server. Des Weiteren habe ich dort einen Trigger und eine Prozedur laufen. So Weit so gut. Das einzige Problem dass ich noch habe ist, dass meine Prozedur einen Fehler schmeißt.
dazu folgendes:
Ich möchte dass meine Prozedur aus der 173 eine eins sieben drei macht.
Also: Prozedur Übergabewert: 173
Rückgabe Wert: eins sieben drei
Doch wenn ich die Prozedur aufrufe dann kommt immer die Fehlermeldung:
Meldung 245, Ebene 16, Status 1, Prozedur TestCase, Zeile 39
Fehler beim Konvertieren des varchar-Werts '-eins-sieben-drei' in den int-Datentyp.
Wie rufe ich die Prozedur auf:
DECLARE @return_value varchar(50)
EXEC @return_value = [dbo].[TestCase]
@Text = N'173',
@Laenge = 3
SELECT 'Return Value' = @return_value
Wie sieht meine Prozedur aus:
CREATE PROCEDURE [dbo].[TestCase] ( @Text VARCHAR(50), @Laenge INT)
AS
DECLARE @EndErgebnis VARCHAR(50)
DECLARE @Zahl INT
DECLARE @Ergebnis VARCHAR(50)
DECLARE @Zeichen VARCHAR(50)
SET @Zahl = 1
SET @Ergebnis = ''
SET @EndErgebnis = ''
SET @Zeichen = ''
WHILE (@Zahl ≤@Laenge)
BEGIN
SET @Zeichen = SUBSTRING(@text, @Zahl, 1)
SELECT
@Zeichen = CASE
WHEN @Zeichen = '0' THEN 'null'
WHEN @Zeichen = '1' THEN 'eins'
WHEN @Zeichen = '2' THEN 'zwei'
WHEN @Zeichen = '3' THEN 'drei'
WHEN @Zeichen = '4' THEN 'vier'
WHEN @Zeichen = '5' THEN 'fünf'
WHEN @Zeichen = '6' THEN 'sechs'
WHEN @Zeichen = '7' THEN 'sieben'
WHEN @Zeichen = '8' THEN 'acht'
WHEN @Zeichen = '9' THEN 'neun'
else
'blub'
END
SET @EndErgebnis = @EndErgebnis + '-' + @Zeichen
SET @Zahl = @Zahl + 1
END
RETURN @EndErgebnis
GO