Concatenar cadena de dos en Sybase procedimiento de almacenamiento

No estoy muy familiarizado con la sintaxis de Sybase procedimiento de almacenamiento. Estoy recibiendo un error con la concatenación de cadenas:

create procedure calendarList
as
declare @city varchar(20)
declare @aus varchar(20)
declare @combined varchar(200)
declare @result varchar(200)

declare curs cursor for select distinct M_CTN from UnionCal for read only

open curs

fetch curs into @city

while (@@sqlstatus!=2)
begin
    declare curs2 cursor for
    select * from UnionCal where M_CTN[email protected]city for read only  

    open curs2
    fetch curs2 into @aus

    while (@@sqlstatus!=2)
    begin
        @combined = @combined + ";" + @aus
        fetch curs2 into @aus
    end

    fetch curs into @city

    select @city,@aus 
    close curs2

end 

close curs

return

El error es en esta línea:

@combined = @combined + ";" + @aus

El mensaje de error no es muy útil:

Msg 102, Nivel 15, Estado 1
El servidor ‘DS_LN_D01_X0427’, Procedimiento ‘calendarList’, Línea 24
Sintaxis incorrecta cerca de ‘@combinado’.

Al parecer no soy la concatenación de la cadena en el camino correcto. Alguna idea?

Estoy usando Sybase 12.

  • algo || otherStuff no funciona? otro punto es que @combinado no está inicializado…
  • nope, no funciona.
  • ¿has probado a iniciarlo?
  • Tengo respuesta antes de su edición, buen punto, yo he tenido una inicialización de la línea de @combinado=» (estos son dos comillas simples) y tengo dos de error ahora. No entiendo cómo sybase asa de variables en el procedimiento de almacenamiento.
  • errores? todavía relativa a la concatenación?
  • el mensaje de error es el mismo 🙁 pero diferente de la línea. Creo que el error está relacionado con la asignación de un valor a la variable

1 Kommentar

  1. 4

    Es muy simple agregar SELECT o SET antes de que comando:

    SELECT @combined = @combined + ";" + @aus

    o

    SET @combined = @combined + ";" + @aus

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea