---
title: "Problem med att skapa en SP i mysql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/164340-problem-med-att-skapa-en-sp-i-mysql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Travoni"
published: "2007-09-10T10:42:04.000Z"
updated: "2007-09-12T16:18:00.000Z"
replies: 9
views: 704
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/164340-problem-med-att-skapa-en-sp-i-mysql"
---

# Problem med att skapa en SP i mysql

## #1 — Travoni, 2007-09-10T10:42Z

Fösöker att skapa en SP i mysql (5), men jag får syntax error på rad 20 (near '') Vad kan det vara för fel?

```
CREATE PROCEDURE procUseTemp(sIds varchar(500)) 
BEGIN 
DECLARE FirstPos INT;
DECLARE FirstPos1 INT;
DECLARE SecondPos INT; 
SET FirstPos=1;
	IF (LENGTH(sIds) > 0) THEN
        DROP TABLE IF EXISTS TempTable;
        CREATE TEMPORARY TABLE TempTable(id int) ENGINE=MEMORY;
		SET SecondPos = LOCATE(',',sIds,FirstPos);
		WHILE (SecondPos>0) DO
			INSERT INTO TempTable
			VALUES(cast(substring(sIds, FirstPos, (SecondPos - FirstPos)) as INT));
			set FirstPos=SecondPos+1;
			SET SecondPos=LOCATE(',',sIds,FirstPos);
		END WHILE;
		INSERT INTO TempTable
		VALUES(cast(right(sIds, LENGTH(sIds) - FirstPos + 1 ) as INT));
	END IF;
SELECT id FROM TempTable; 
END;
```

/R Jag kom på att det var fel SP jag bifogat, men jag får samma fel på den. 
Men På denna kod:

```
...syntax to use near ';
			set FirstPos=SecondPos+1;
			SET SecondPos=LOCATE(',',sIds,FirstPos);
```

Permalänk: https://www.webforum.nu/p/164340

## #2 — CatZ, 2007-09-10T11:13Z

Det är någon av raderna 

```
SET LOC = LOCATE(', ',REM);
```

 som spökar, kontrollera dem.

Kanske är själva inserten förresten 

```
INSERT INTO TempTable VALUES(REM);
```

 REM är '' eller nåt i den stilen. Jag kan inte mySQL

Permalänk: https://www.webforum.nu/p/2026960

## #3 — Travoni, 2007-09-10T11:54Z

Ok, se editering.

Permalänk: https://www.webforum.nu/p/2026971

## #4 — CatZ, 2007-09-10T13:10Z

Du har fortfarande fel på raderna med LOCATE, vad vill du med LOCATE(',' ? 

Försöker du ta bort kommat?

Permalänk: https://www.webforum.nu/p/2026983

## #5 — LarsG, 2007-09-10T13:28Z

Om du gör en cast till int så måste du ange signed eller unsigned.

Vad är det för fel med locate?

Permalänk: https://www.webforum.nu/p/2026990

## #6 — Travoni, 2007-09-10T22:45Z

Jag lyckas ta mej sjuttsingen inte få till denna heller.
Hittad här: <http://forge.mysql.com/snippets/view.php?id=4>
Fel på rad 19...

```
CREATE PROCEDURE split_string (IN input TEXT, IN delimiter VARCHAR(10) ) 
SQL SECURITY INVOKER
COMMENT 'Splits a supplied string using using the given delimiter, 
placing values in a temporary table'
BEGIN
    DECLARE cur_position INT DEFAULT 1 ;
    DECLARE remainder TEXT;
    DECLARE cur_string VARCHAR(1000);
    DECLARE delimiter_length TINYINT UNSIGNED;
    DROP TEMPORARY TABLE IF EXISTS SplitValues;
    CREATE TEMPORARY TABLE SplitValues (
    value VARCHAR(1000) NOT NULL PRIMARY KEY
    ) ENGINE=MEMORY;
    SET remainder = input;
    SET delimiter_length = CHAR_LENGTH(delimiter);
        WHILE CHAR_LENGTH(remainder) > 0 AND cur_position > 0 DO
            SET cur_position = INSTR(remainder, delimiter);
            IF cur_position = 0 THEN
              SET cur_string = remainder;
            ELSE
                SET cur_string = LEFT(remainder, cur_position - 1);
            [B]END IF;[/B]
            IF TRIM(cur_string) != '' THEN
              INSERT INTO SplitValues VALUES (cur_string);
            END IF;
            SET remainder = SUBSTRING(remainder, cur_position + delimiter_length);
        END WHILE;
END;
```

Permalänk: https://www.webforum.nu/p/2027135

## #7 — Travoni, 2007-09-11T16:15Z

I mysql/phpadmin får jag felet på denna rad: DECLARE cur_position INT DEFAULT 1 ;

Permalänk: https://www.webforum.nu/p/2027310

## #8 — Travoni, 2007-09-12T13:43Z

...Det var hela tiden GUIEN som jag jobbade i som fukcade upp allt. När jag skapade en egen "editor" i presentationslagret så gick det alldeles utmärkt att skapa SP'n. :)

Otroligt att man skall behöva skapa ett eget verktyg för att editera sqler... ;)

Permalänk: https://www.webforum.nu/p/2027550

## #9 — clarkbones, 2007-09-12T15:52Z

Vilken sql-editor använde du?

Permalänk: https://www.webforum.nu/p/2027599

## #10 — Travoni, 2007-09-12T16:18Z

myPHPAdmin och mySql Front 3.2

Permalänk: https://www.webforum.nu/p/2027602

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/164340-problem-med-att-skapa-en-sp-i-mysql
