IBM Cloud 上的 Db2 的 SQL 格式是啥?

Posted

技术标签:

【中文标题】IBM Cloud 上的 Db2 的 SQL 格式是啥?【英文标题】:What's the SQL format for Db2 on IBM Cloud?IBM Cloud 上的 Db2 的 SQL 格式是什么? 【发布时间】:2019-07-26 14:00:13 【问题描述】:

我在 IBM Cloud 上使用免费版本的 Db2。我想在带有 JDBC 驱动程序的 Spring Boot 应用程序中使用它。但我不知道 IBM Cloud 上的 Db2 的 SQL 格式是什么。官方文件有些杂乱。我用谷歌搜索,但找不到教程。

我有以下适用于 H2 数据库的 SQL。我想在 IBM Cloud 的 SQL 格式上转换为 Db2。我搜索了一些类似这样的 SQL 方言翻译器:https://www.jooq.org/translate/ 但它似乎不适用于 IBM Cloud 格式。

DROP TABLE IF EXISTS id_0065_00000004;

CREATE TABLE IF NOT Exists id_0065_00000004 (
 gmeid           VARCHAR(16) NOT NULL,
 businessid      VARCHAR(25) NOT NULL,
 businesssubid   VARCHAR(25) NOT NULL,
 kind            VARCHAR(25) ,
 name            VARCHAR(255) ,
 kindvalue       VARCHAR(255) ,
 kindtype        VARCHAR(20) ,
 securitycode    VARCHAR(25) ,
 flowcode        VARCHAR(12) ,
 flowsubcode     VARCHAR(12) ,
 startdate       DATE      NOT NULL,
 enddate         DATE      NOT NULL,
 withdrawaldate  DATE     NOT NULL,
 orientationkey  VARCHAR(500) ,
 parentid        VARCHAR(16) ,
 createdate      DATE,
 createuser      VARCHAR(25) ,
 updatedate      DATE,
 updateuser      VARCHAR(25) ,
 lockflg         BIT,
 lockuser        VARCHAR(25) ,
 lockdate        DATE,
 updatemachine   VARCHAR(25) ,
 PRIMARY KEY (businessid, gmeid, businesssubid)
);

CREATE INDEX kind ON id_0065_00000004(kind);

那么如何将上面的SQL转换成DB2格式呢?

【问题讨论】:

“格式”是什么意思?你是指 SQL 语法还是方言? 当您使用免费版本的 Db2-on-Cloud 时,您事先并不知道您将获得 Db2-for-Linux/Unix/Windows 的确切版本/修订包。目前,它可能是 Db2 v11.1.3.3b 或更高版本,具体取决于您的区域/数据中心选择。您问题中的上述语法不适用于 Db2 v11.1,但适用于版本 11.5,因此如果您的数据库在 11.1.x 上运行,请省略“IF EXISTS”和“IF NOT EXISTS” 另外,请记住,所有 IBM 产品文档都位于 Knowledge Center (ibm.com/support/knowledgecenter/en) 的一个位置。特别是 CREATE TABLE 的语法是ibm.com/support/knowledgecenter/en/SS6NHC/…。 【参考方案1】:

改变

lockflg         BIT,

lockflg         BOOLEAN,

正如@mao 指出的那样,IF EXIST 和 IF NOT EXIST 需要 11.5

【讨论】:

【参考方案2】:

不确定您的确切意思。 Db2 on Cloud has a download page 获取正确的 JDBC 驱动程序和有关如何连接到 Db2 的说明。 Db2 on Cloud 是基于 IBM Db2(适用于 Linux、Windows 和 UNIX)的托管服务。

这是tutorial for regular Db2 and Spring。大多数包装器都支持开箱即用的 Db2。

如果您对实际的 SQL 语法感兴趣,在实际的doc portal for Db2 on Cloud 上有一个链接SQL Reference

【讨论】:

哦,谢谢!我刚刚发现您链接的 SQL 参考页面不是一个页面!我已经登陆了页面,但我以为它只是一个页面......我发现我需要点击菜单按钮才能继续阅读内容!......哦,他们为什么不设置打开时扩展菜单。 ..

以上是关于IBM Cloud 上的 Db2 的 SQL 格式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

IBM Db2 on Cloud 中使用的 SQL 方言是啥

使用 PHP Cloud Foundry 应用程序连接到 IBM zOS 系统/DB2 表

如何在 ibm worklight 中通过 sql 适配器从 db2 检索或显示 html 页面上的数据?安卓混合应用开发

日期格式:DB2 _ SQL

使用 IBM DB2 Connect 驱动程序调用 i 系列上的存储过程

原因:com.ibm.db2.jcc.am.SqlSyntaxErrorException:DB2 SQL 错误:SQLCODE=-440,SQLSTATE=42884