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 页面上的数据?安卓混合应用开发
使用 IBM DB2 Connect 驱动程序调用 i 系列上的存储过程
原因:com.ibm.db2.jcc.am.SqlSyntaxErrorException:DB2 SQL 错误:SQLCODE=-440,SQLSTATE=42884