如何在 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.

可重复使用