【发布时间】:2021-05-08 05:28:56
【问题描述】:
我正在尝试让它工作,但它不断出现
Could not execute statement.
Syntax error near 'BEGIN' on line 14
SQLCODE=-131, ODBC 3 State="42000"
Line 1, column 1
You can continue executing or stop.
代码如下:
IF VAREXISTS('@count') = 0 THEN CREATE VARIABLE @count int; END IF;
IF VAREXISTS('@string') = 0 THEN CREATE VARIABLE @string char(50); END IF;
IF VAREXISTS('@found') = 0 THEN CREATE VARIABLE @found char(50); END IF;
IF VAREXISTS('@result') = 0 THEN CREATE VARIABLE @result char(50); END IF;
IF VAREXISTS('@fieldsToSearch') = 0 THEN CREATE VARIABLE @fieldsToSearch long varchar; END IF;
SET @count = 0;
SET @string = '';
SET @found = '';
SET @result = '';
SET @fieldsToSearch = '';
FOR LoopGetForeignChar AS CursGetForeignChar Dynamic Scroll CURSOR FOR ( -- Line 1
SELECT
row_value stringToSearch
FROM
sa_split_list(@fieldsToSearch)
WHERE
A1 <> ''
ORDER BY A1
)
DO
SET @string = stringToSearch;
WHILE @count <= Length(@string)
BEGIN -- Line 14
SET @found = (SELECT SUBSTR(@String, @count, 1) WHERE SUBSTR(@String, @count, 1) NOT REGEXP '[a-zA-Z0-9]*')
SET @result = @result + (SELECT STRING(@found,'x') WHERE LOCATE(@result, @found) = 0 )
SET @count = @count + 1
END
END FOR;
我已检查,@fieldsToSearch 包含一个由逗号分隔的字母数字字符串列表。
工作逻辑:
- 将字符串列表拆分为行
- 检查每一行是否包含除“[a-zA-Z0-9]*”以外的任何其他字符
- 如果有,检查该字符是否已经在@results 中,如果没有,添加它。
这是一个更大的 SQL 的一部分,直到现在为止。
【问题讨论】:
-
这里为什么有mysql标签?
-
如果这是 Sybase ... 在“Sybase”名称下有 4 种不同的 RDBMS 产品(ASE、IQ、SQLAnywhere、Advantage);这看起来像 SQLAnywhere(或者可能是 IQ);请确认然后更新标签以显示 SQLAnywhere(或 IQ);如果这是不是 Sybase ...仍然需要相应地更新标签
-
@markp-fuso 很抱歉。我现在已经修好了。感谢您指出这一点。
标签: sql sybase sqlanywhere