webForumDet fria alternativet

SP och strängar...

4 svar · 173 visningar · startad av MinOrk

MinOrkMedlem sedan aug. 2000234 inlägg
#1

Kan man göra följande (klart man inte kan göra exakt... :) ) på något sätt:

BEGIN
v_str = '/';
FOR SELECT GRUPP
FROM tblGRP
INTO v_tmp
DO
v_str = v_str || v_tmp || '/';

V_RESULT = v_str;
END

i en stored procedure? Det "funktionen" ska göra är att hämta alla data från fältet GRUPP i tabellet tblGRP och skapa en sträng som skilljer datat från varandra med /-tecken.

Alla variabler och fält är deklarerade som VARCHAR(n)

[Redigerat av MinOrk den 18 okt 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vilken DBMS?

------------------
essentitia preter non sans multiplicandum

MinOrkMedlem sedan aug. 2000234 inlägg
#3

vill jag inte säja... ;) eftersom du (LarsG) inte visste så mycket om den i andra frågor jag ställt.Men InterBase 6.
Fast om det fungerar i oracle eller ms sql vore det intressant att veta hur...

LarsGMedlem sedan dec. 200012 464 inlägg
#4

sql-server variant

DECLARE @v_str varchar(4096)
set @v_str = '/'

SELECT @v_str = @v_str + grupp + '/'
FROM tblGrp

select @v_str

I oracle får du nog göra en explicit loop antingen med en cursor
http://download-eu.oracle.com/otndoc/oracle9i/901_doc/appdev.901/a89856/06_ora.htm#36656

eller en collection
http://download-eu.oracle.com/otndoc/oracle9i/901_doc/appdev.901/a89856/05_colls.htm

Som sagt interbase vet jag inget om.

------------------
essentitia preter non sans multiplicandum

MinOrkMedlem sedan aug. 2000234 inlägg
#5

tackar. det gick att lösa ungefär som jag skrev i mitt första inlägg. nu har jag stött på nya problem, men de är till för att lösas... ;)

128 ms totalt · 3 externa anrop · v20260731065814-full.91fd2ad2
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)