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>