欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

infromix存储过程的有关问题。

更新时间: 2014-01-05 02:19:52 责任编辑: Author_N1

 

infromix存储过程的问题。。。急!!!
在创建informix存储过程中有像DB2存储过程中的
  LANGUAGE SQL
  NOT DETERMINISTIC
  CALLED ON NULL INPUT
  EXTERNAL ACTION
  OLD SAVEPOINT LEVEL
  MODIFIES SQL DATA
  INHERIT SPECIAL REGISTERS
这些属性设置吗?我在网上找了好多informix的存储过程的例子。里面都没有这些东西。
可是我现在要把db2存储过程转化成informix的存储过程。db2存储工程中的这些属性,
在informix中我要怎么写呢?

--参考方法--
那informix中的存储过程怎么写,用Informix好几年了,还从来没有写过存储过程呢。
--参考方法--
示例:
CREATE PROCEDURE getxml1levnode(arg1 CHAR(255), arg2 CHAR(255), arg3 CHAR(255),
arg4 CHAR(255), szNodeName CHAR(128))
RETURNING CHAR(255);
DEFINE in_szStr CHAR(1024);
DEFINE szRetMsg CHAR(255);
DEFINE szStartNode CHAR(255);
DEFINE szEndNode CHAR(255);
DEFINE lLen INT;
DEFINE lNodeName INT;
DEFINE i INT;
DEFINE lStartNode INT;
DEFINE lEndNode INT;
DEFINE lStart INT;
DEFINE lEnd INT;
DEFINE lFlag INT;

LET in_szStr=arg1 || arg2 || arg3 || arg4;
LET lLEN=LENGTH(in_szStr);

LET lNodeName=LENGTH(szNodeName);

LET szStartNode='<' || TRIM(szNodeName) || '>';
LET lStartNode=lNodeName + 2;
LET szEndNode='</' || TRIM(szNodeName) || '>';
LET lEndNode=lNodeName + 3;

LET szRetMsg='';
LET i=1;
LET lStart=0;
LET lEnd=0;
LET lFlag=0;
WHILE (i<=lLen-lStartNode)
IF (lFlag=0) THEN
LET szRetMsg=SUBSTR(in_szStr, i, lStartNode);
IF (szRetMsg=szStartNode) THEN
LET lFlag=1;
LET lStart=i + lStartNode;
Let i=i + lStartNode;
END IF
END IF

IF (lFlag=1) THEN
LET szRetMsg=SUBSTR(in_szStr, i, lEndNode);
IF (szRetMsg=szEndNode) THEN
LET lFlag=2;
LET lEnd=i - lStart;
EXIT WHILE;
END IF
END IF

LET i=i + 1;
END WHILE

IF (lFlag=2) THEN
LET szRetMsg=SUBSTR(in_szStr, lStart, lEnd);
ELSE
LET szRetMsg='';
END IF

RETURN szRetMsg;

END PROCEDURE;




上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:19:52
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8546/
本文WWW.DOC100.NET DOC100.NET版权所有。