首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

DB2函数中实现像一张表插入数据,该如何解决

2012-02-15 
DB2函数中实现像一张表插入数据CREATE FUNCTION F1(IN_ID INTEGER)RETURN INTEGERLANGUAGE SQLMODIFIES SQ

DB2函数中实现像一张表插入数据
CREATE FUNCTION F1
(IN_ID INTEGER)
RETURN INTEGER
LANGUAGE SQL
MODIFIES SQL DATA
BEGIN AUTOMIC

INSERT INTO FUN1 VALUES(IN_ID,CURRENT TIMESTAMP);

RETURN IN_ID;
END;

表结构
CREATE TABLE FUN1
(
ID INTEGER,
CTIME TIMESTAMP);

很简单的函数,报错
SQL0628N 存在涉及“MODIFIES SQL DATA”子句的多个关键字或有冲突的关键字。
如果返回一个table就不会报错。但是功能不对。
这个可以解决吗。

[解决办法]

SQL code
C:\Documents and Settings\db2admin>db2 connect to test_01   数据库连接信息 数据库服务器         = DB2/NT 9.1.0 SQL 授权标识         = DB2ADMIN 本地数据库别名       = TEST_01C:\Documents and Settings\db2admin>db2 -tvf "C:\Documents and Settings\db2admin\桌面\q1.txt"CREATE TABLE FUN1 ( ID INTEGER, CTIME TIMESTAMP)DB20000I  SQL命令成功完成。C:\Documents and Settings\db2admin>db2 -td@ -vf "C:\Documents and Settings\db2admin\桌面\q2.txt"CREATE FUNCTION F1(IN_ID INTEGER)     RETURNS TABLE (ID INTEGER,                    CTIME TIMESTAMP)     LANGUAGE SQL     MODIFIES SQL DATA     NO EXTERNAL ACTION     DETERMINISTIC     BEGIN ATOMICINSERT INTO FUN1 VALUES(IN_ID,CURRENT TIMESTAMP);return select * from FUN1 where ID = IN_ID;ENDDB20000I  SQL命令成功完成。C:\Documents and Settings\db2admin> 

热点排行