0

我有这个带有星号的UDF代码create function...

但我不知道把它放在 iseries 导航器屏幕的哪个位置。谁能帮我?谷歌没有帮助

4

2 回答 2

4

展开数据库分支以显示系统上的所有数据库。

然后要么

  • 右键单击数据库并选择运行 SQL 脚本

或者

  • 展开数据库以显示模式
  • 右键单击您选择的架构并选择新建-->函数-->SQL

第一个可能是您最好的选择,因为您似乎拥有完整的来源。

于 2015-05-01T14:00:58.773 回答
1

在STRSQL窗口中整体输入..例如(下面的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.

它是可重复使用的

于 2015-05-01T14:12:51.223 回答