搜索到关键字为 DB2 的相关日志 4 篇: ("[空格]和"+"[加号] 可作搜索分隔符号使用.)

常用数据库validationQuery语句 suny

在配置数据库连接池的时候,有一个选项validationQuery,该选项用来验证数据库连接的有效性,下表是从网上收集的常用数据库的validationQuery语句。

数据库 validationQuery
Oracle select 1 from dual
DB2 select 1 from sysibm.sysdummy1
mysql select 1
microsoft sql select 1
hsqldb select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
postgresql select version();
ingres select 1
derby select 1
H2 select 1

DB2 SEQUENCE 序列的问题 suny

1、创建索引的时候,最好不要加双引号,比如:

db2 ==> CREATE SEQUENCE "seq_test" ...

应该改为:

db2 ==> CREATE SEQUENCE seq_test ...

加了双引号,表示大小写敏感,如果你使用以下语句去查找序列的话,则会报错:

db2 ==> select (nextval for seq_test) from sysibm.sysdummy1;

SQL0204N  "XXX.SEQ_TEST" is an undefined name.  SQLSTATE=42704

2、select nextval for seq_test from sysibm.syssequences 会列出CACHE缓存中的所有值,获取一个值应该使用:

select (nextval for seq_test) from sysibm.sysdummy1;

或者

select (next value for seq_test) from sysibm.sysdummy1;

3、序列设置开始值

 DB2:ALTER SEQUENCE 序列名  RESTART WITH 下一值

...

DB2 带update,insert的Function函数 cloud

DB2 的自定义函数,默认不允许修改表数据,有INSERT UPDATE DELETE之类的语句则会报错:

The "MODIFIES SQL DATA" clause has not been specified in the CREATE FUNCTION statement for LANGUAGE SQL function "UMP.SEQ" but an examination of the function body reveals that it should be specified.. SQLCODE=-374, SQLSTATE=428C2, DRIVER=3.63.108

如果需要修改表数据,则需要增加 MODIFIES SQL DATA 的修饰符,并且返回类型必须是TABLE,否则会报错:

An SQL TABLE function must return a table result.. SQLCODE=-20120, SQLSTATE=428F1, DRIVER=3.63.108

完整示例:

CREATE FUNCTION seq(seq_name char (20)) RETURNS TABLE(col bigint) MODIFIES SQL DATA
BEGIN ATOMIC
      UPDATE seq SET val=val+1 WHERE NAME=seq_name;
      RETURN (SELECT val FROM seq WHERE NAME=seq_name);
END

MS-SQL操作指令全集 rainy

下列语句部分是Mssql语句,部份可能不可以在access中使用。

SQL分类:  
DDL—数据定义语言(Create,Alter,Drop,DECLARE)  
DML—数据操纵语言(Select,Delete,Update,Insert)  
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
...