- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将InformixESQLC应用程序迁移到DB2
将Informix ESQL/C应用程序迁移到DB2 本文档讲述数据库嵌入式SQL/C程序从ESQLC向过程中所进行的分析、过程 IDS与DB2嵌入式SQL差异性分析 基本语法EXEC SQL SELECT * FROM tab1 WHERE color = pred; 修改为: EXEC SQL SELECT * FROM tab1 WHERE color = pred; 模糊查询 IDS同时支持关键字like和MATCHES,两个关键字对应的多个字符和单个字符的匹配分别为%、_和*、?。若使用MATCHES,则需要对字符*?进行转义。 IDS中对字符串进行截取或匹配支持使用关键字str[a,b],其中a为起始字符串下标(序号从1开始),b为要截取字符串的结束下标;这种使用方式需要修改为like(where条件中)和substr(str,n1,n2),其中参数str为要取的字段名,n1为起始字符串下标(序号从1开始), n2为需要截取字符串的个数,即n2=b-a+1。 将所有存在的 UNIQUE 关键字都替换成 DISTINCT 关键字。 高级SQL操作 数据库 IDS使用database cmbc; 使用database close; DB2使用SQL CONNECT TO cmbc; 如果要使用特定的用户标识(name)和密码(pwd),则使用如下语句: EXEC SQL CONNECT TO sample USER name USING pwd; ?断开数据库cmbc连接: EXEC SQL CONNECT RESET; 故要将程序中以上三种方式修改为标准方式。 事务操作 中语法 打开事务; 提交事务; 回滚事务; DB2中语法 打开事务 提交事务;(或EXEC SQL COMMIT;) 回滚事务;(或EXEC SQL RALLBACK;) ? 游标操作 游标基本语法 定义游标EXEC SQL DECLARE mycursor CURSOR FOR SELECT * FROM staff WHERE id = 310; 打开游标EXEC SQL OPEN mycursor; Fetch游标EXEC SQL FETCH mycursor INTO :id, :name, :dept, :job:jobInd; 关闭游标EXEC SQL CLOSE mycursor; 释放游标EXEC SQL FREE mycursor; 在IDS中游标需要释放,而在DB2中游标不需要释放。IDS和DB2同时支持对游标所引用行进行更新和删除,即在查询语句后追加“for update”,同时在“update”或“delete”语句中条件为“where current of mycursor”,两者的使用是相同的。 注:在db2中声明游标时,不会更新sqlcode,做执行此操作时不需要判断sqlcode,不然会产生不必要的错误。 ? 临时表操作Select * from eviaa into temp tmp_table with no log; 在DB2中不支持此种用法,需要先创建临时表: EXEC SQL DECLARE GLOBAL TEMPORARY TABLE tmp_table LIKE eviaa WITH REPLACE not logged; 其中“like eviaa”为此临时表与eviaa相同,WITH REPLACE,为若此临时表存在,则覆盖, not logged :不进行日志 然后向临时表中插入数据,其语法为: EXEC SQL INSERT INTO session. tmp_table (Select * from eviaa); 其中临时表名前必须加“session.”。 系统表:systables 在informix 中系统表systables在DB2中对应的系统库表为sysibm.tables,如: 在informixk中: select count(*) from systables where tabname=acan0 其中,tabname字段中存储的表名为小写。 DB2中与其对应的库表为 sysibm.tables,对应的字段表名tabname对应为TABLE_NAME select count(*) from sysibm.tables where TABLE_NAME = ACAN0 db2中系统表sysibm.tables中字段tabname中存储字母均为大写,使用时需要注意。 主变量的数据类型 SQL类型 C数据类型 SQL类型描述 SMALLINT short short int sqlint16 16位带符号整数
文档评论(0)