Toon posts:

SQL: stored procedure

Pagina: 1
Acties:

Verwijderd

Topicstarter
Stored Procedure:

@Services varchar(50), (b.v. 45,90)
@Number numeric OUTPUT

SELECT @Number = COUNT(GSM) FROM Subscribers WHERE ServiceID IN (@Services)

foutmelding: Error to convert varchar into numeric
Bij het "hard" invullen van de waarde treedt geen fout op.

Wat is hier aan de hand ??


Nu kan ik de SQL query correct maken door sp_executesql te gebruiken.

EXECUTE sp_executesql N'SELECT COUNT(GSM) FROM Subscribers WHERE ServiceID IN(' + @Services + ')'

Hoe krijg je hier het resultaat van in een variabele ?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
select iets into variabele
misschien?

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Lijkt me nogal voor de hand liggend, je gebruikt als input parameter varchar, maar zo te zien aan het voorbeeld is dit een getal of valuta, lijkt me dat je van die input parameter juiste type maakt.

In noodgevallen kan je altijd nog casten maar das uiteraard minder mooi.

Verwijderd

Topicstarter
Input type is prima.

Het gegeven voorbeeld is nl. 45,90 dat is duidelijk varchar
Als het voorbeeld direct wordt ingegeven (dus ipv de variabele @Services) werkt alles perfect.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Probeer eens int in plaats van numeric

  • Onno
  • Registratie: Juni 1999
  • Niet online
En zeg voortaan MSSQL in plaats van SQL.

  • 3volution
  • Registratie: September 2001
  • Niet online

3volution

tsja...

Op woensdag 03 oktober 2001 19:53 schreef limoh het volgende:
Input type is prima.

Het gegeven voorbeeld is nl. 45,90 dat is duidelijk varchar
Als het voorbeeld direct wordt ingegeven (dus ipv de variabele @Services) werkt alles perfect.
Als het input type varchar is, dan wordt dat met de variabele vervangen door '45,90' en niet 45,90. Je zult denk ik toch met een subquery aan de gang moeten om die quotes weg te krijgen, want een CAST van 45,90 levert geen reeks van getallen op, maar 1 getal of een error als je bijvoorbeeld 45,90,110 wilt gebruiken.
Pagina: 1