如何在 AS400 中创建 UDF
How to create UDF in AS400
我有这段带有 create function...
的 UDF 代码
但我不知道将它放在 iseries 导航器屏幕中的什么位置。谁能帮我? Google 没有帮助
展开 Databases 分支以显示系统上的所有数据库..
然后要么
- 右键单击 DB 和 select 运行 SQL Scripts
或
- 展开数据库以显示架构
- 右键单击您的 selected 模式和 select New-->Function-->SQL
第一个可能是您的最佳选择,因为您似乎拥有完整的源代码。
将其作为一个整体输入到STRSQL window中..例如(下面的INSTRB UDF)
CREATE FUNCTION INSTRB (C1 VarChar(4000), C2 VarChar(4000), N integer, M integer)
RETURNS Integer
SPECIFIC INSTRBOracleBase
LANGUAGE SQL
CONTAINS SQL
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN ATOMIC
DECLARE Pos, R, C2L Integer;
SET C2L = LENGTH(C2);
IF N > 0 THEN
SET (Pos, R) = (N, 0);
WHILE R < M AND Pos > 0 DO
SET Pos = LOCATE(C2,C1,Pos);
IF Pos > 0 THEN
SET (Pos, R) = (Pos + 1, R + 1);
END IF;
END WHILE;
RETURN (Pos - 1)*(1-SIGN(M-R));
ELSE
SET (Pos, R) = (LENGTH(C1)+N, 0);
WHILE R < M AND Pos > 0 DO
IF SUBSTR(C1,Pos,C2L) = C2 THEN
SET R = R + 1;
END IF;
SET Pos = Pos - 1;
END WHILE;
RETURN (Pos + 1)*(1-SIGN(M-R));
END IF;
END!
应该输出Function INSTRB was created in QGPL.
可重复使用
我有这段带有 create function...
但我不知道将它放在 iseries 导航器屏幕中的什么位置。谁能帮我? Google 没有帮助
展开 Databases 分支以显示系统上的所有数据库..
然后要么
- 右键单击 DB 和 select 运行 SQL Scripts
或
- 展开数据库以显示架构
- 右键单击您的 selected 模式和 select New-->Function-->SQL
第一个可能是您的最佳选择,因为您似乎拥有完整的源代码。
将其作为一个整体输入到STRSQL window中..例如(下面的INSTRB UDF)
CREATE FUNCTION INSTRB (C1 VarChar(4000), C2 VarChar(4000), N integer, M integer)
RETURNS Integer
SPECIFIC INSTRBOracleBase
LANGUAGE SQL
CONTAINS SQL
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN ATOMIC
DECLARE Pos, R, C2L Integer;
SET C2L = LENGTH(C2);
IF N > 0 THEN
SET (Pos, R) = (N, 0);
WHILE R < M AND Pos > 0 DO
SET Pos = LOCATE(C2,C1,Pos);
IF Pos > 0 THEN
SET (Pos, R) = (Pos + 1, R + 1);
END IF;
END WHILE;
RETURN (Pos - 1)*(1-SIGN(M-R));
ELSE
SET (Pos, R) = (LENGTH(C1)+N, 0);
WHILE R < M AND Pos > 0 DO
IF SUBSTR(C1,Pos,C2L) = C2 THEN
SET R = R + 1;
END IF;
SET Pos = Pos - 1;
END WHILE;
RETURN (Pos + 1)*(1-SIGN(M-R));
END IF;
END!
应该输出Function INSTRB was created in QGPL.
可重复使用