Avatar billede thrakrath Nybegynder
12. oktober 2001 - 20:05 Der er 1 løsning

Cursor i stored procedures

Hej

Jeg har lidt problemer cursor i stored procedure.
Jeg har følgende sql streng:

Set @Temp_Sql_String = \'Select @Output = Output From tbl_Kategori Where Kategori_Sub_ID in (\' + @Temp_Kategori_Array + \')\'

@Temp_Sql_String(Varchar(255)), @Output(Varchar) og @Temp_Kategori_Array(Varchar(255)) er deklareret. Desuden indeholder @Temp_Kategori_Array en række tal(ID\'ere) som er kommaseperaret.

Grunden til at jeg lægger min sqlsætning ind i en streng er at det er den eneste mulighed for at eksekverer denne uden at der meldes fejl, fordi at mit @Temp_Kategori_Array er en varchar og Kategori_Sub_ID er en integer og det kan tilsyneladende ikke eksekveres på andre måder. (Dont ask me why)

Det jeg nu gerne vil er at lægge en cursor uden om @Temp_Sql_String så jeg kan manipulerer med outputtet, evt lægge det ned i en tabel.
Men hvordan i helvede gør det? :) Jeg har forsøgt mig med følgende:

Declare cSelect Cursor For (Exec (@Temp_Sql_String))
Open cSelect
Fetch Next From cSelect Into @Output .... osv

Jeg får en fejl der siger: \"Incorrect syntax near the keyword Exec\" Og  \"Incorrect syntax near \')\'\"

Jeg håber virkelig at der nogen der kan hjælpe - og bare spørg hvis der er nogle uklarheder i mit spørgsmål(Dem er der sikkert masser af)

Avatar billede thrakrath Nybegynder
12. oktober 2001 - 20:17 #1
Jeg fandt selv svaret. Man skriver følgende:

Set @Temp_Sql_String = \'Declare cSelect Cursor For ( Select Kategori_ID From tbl_Kategori Where Kategori_Sub_ID in (\' + @Temp_Kategori_Array + \'))\'
            Exec (@Temp_Sql_String)

Også virker lortet sgu.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester