当前位置:我的异常网» DB2 » 为什么下面这段程序不能在DB2命令编辑器中运行?
为什么下面这段程序不能在DB2命令编辑器中运行?
www.myexceptions.net 网友分享于:2013-03-18 浏览:288次
为什么下面这段程序不能在DB2命令编辑器中运行?在线等.
CREATE FUNCTION "BRAS".FUN_GET_LSH_FROM_YJNR ( yjnr VARCHAR(80) )
RETURNS VARCHAR(30)
BEGIN ATOMIC
declare v_startpos real;
declare v_endpos real;
declare v_len real;
declare v_fhy varchar(100);
declare v_lsh varchar(100);
declare Result varchar(30);
set v_startpos = locate('主机流水号:',yjnr);
if(v_startpos = 0) then
return '';
end if;
set v_endpos = locate('|柜员流水号',yjnr);
if(v_endpos = 0) then
return '';
end if;
set v_startpos = v_startpos + 6;
set v_len = v_endpos-v_startpos;
set Result = '';
if (v_len > 0) then
set Result = substr(yjnr,v_startpos,v_len);
end if;
RETURN Result;
END;
错误信息:
CREATE FUNCTION "BRAS".FUN_GET_LSH_FROM_YJNR ( yjnr VARCHAR(80) )
RETURNS VARCHAR(30)
BEGIN ATOMIC
declare v_startpos real
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "C declare v_startpos" 后面找到异常标记
"real"。预期标记可能包括:"END-OF-STATEMENT"。 LINE NUMBER=4. SQLSTATE=42601
declare v_endpos real
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "declare v_endpos " 后面找到异常标记
"real"。预期标记可能包括:"END-OF-STATEMENT"。 SQLSTATE=42601
declare v_len real
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "declare v_len " 后面找到异常标记
"real"。预期标记可能包括:"END-OF-STATEMENT"。 SQLSTATE=42601
declare v_fhy varchar(100)
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "declare v_fhy
varchar"。预期标记可能包括:""。 SQLSTATE=42601
declare v_lsh varchar(100)
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "declare v_lsh
varchar"。预期标记可能包括:""。 SQLSTATE=42601
declare Result varchar(30)
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "declare Result
varchar"。预期标记可能包括:""。 SQLSTATE=42601
set v_startpos = locate('主机流水号:',yjnr)
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "set v_startpos
="。预期标记可能包括:""。 SQLSTATE=42601
if(v_startpos = 0) then return ''
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记
""。预期标记可能包括:""。 SQLSTATE=42601
end if
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "end if" 后面找到异常标记
"END-OF-STATEMENT"。预期标记可能包括:"JOIN "。 SQLSTATE=42601
set v_endpos = locate('|柜员流水号',yjnr)
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "set v_endpos
="。预期标记可能包括:""。 SQLSTATE=42601
if(v_endpos = 0) then return ''
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记
""。预期标记可能包括:""。 SQLSTATE=42601
end if
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "end if" 后面找到异常标记
"END-OF-STATEMENT"。预期标记可能包括:"JOIN "。 SQLSTATE=42601
set v_startpos = v_startpos + 6
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "set v_startpos
文章评论