设为首页 收藏本站
查看: 986|回复: 0

[经验分享] IBM 的数据库Informix 常用代语法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-5 12:22:17 | 显示全部楼层 |阅读模式
  Informix 日期类型
  datetime year to second  格式为 2003-08-05 10:00:00
  datetime year to day  格式为 2003-08-05
  Informix 数据类型说明
   在定义一个字段时,使用char(x)后。如果字段放入的内容不足x长,就会以空格填充,在代码操作时,需要trim()去掉多佘的空格,sql server 2005 也有以上情况。
   varchar(x) ,x 的最大值是255, 所以它存放的数据是有限的。这个时候,就需要使用lvarcahr(x) ,版本9.4以后可以加长度 x, 那么在hibernate 中怎么映射并使用lvarchar(x)  呢, 这个问题纠结了好久,还替换了hibernate 的核心包,如果要使用lvarchar(x),和以前一样的映射,如果在查询语句时,不能写SQL语句,只能写HQL 语句.
  Informix 存储过程中 使用 let 赋值
  define cur_dtime_var datetime year to second;
  let cur_dtime_var = current; -- 使用let 目赋值
  Informix 修改表中字段的值,不可以给某个表起别名,如:update atable a  set a.name='stuName' where a.id=1;   这就会出错,informix 会报语法错误,不能给表atable 起别名 a.
  但在其他的数据中,以上update 语句是正确的,如在mysql 中是可以正确的执行。

Informix 存储过程学习示例,只供自己学习之用

create procedure myproc1() -- 隐式的语句块的开始
define x int ;
let x =17;
insert into table1 values (x,'zs');
begin --  显示的语句块开始
define y int;
let y = 18;
insert into table2 values (y,'ls');
end   -- 显示的语句块结束
end procedure; -- 隐式的语句块的结束

create procedure continue_ex()
returning int;
define i int;
for i=1 to 20
insert into testtb1 values(i);
if i=6 then
continue for; -- 当i=6 时,跳过最内层的循环
end if;
return i with resume; -- 返回i 然后再重新循环
end for;
end procedure;

-- 存储过程如何返回记录集已经测试成功了,
drop procedure tmp;
create procedure tmp()
returning decimal(12,2),decimal(12,2),varchar(20);
define a,b decimal(12,2);
define c varchar(20);
select * from gskb into temp tmp;
foreach select sjf_je,cbm_cert,station into a,b,c  from tmp
return a,b,c with resume;
end foreach;
end procedure


  

informix 中的自增长

drop table zrjCarParmConfTmp;
alter table zrjCarParmConfTmp modify mainid  SERIAL(1)   not null;  
create table zrjCarParmConfTmp  (
mainid               SERIAL                        not null,
comcode              CHAR(8),
primary key (mainid)
constraint PK_ZRJCARPARMCONFT
);
select * from zrjCarParmConfTmp;
insert into zrjCarParmConfTmp values(0,'11111111');
insert into zrjCarParmConfTmp (comcode) values('11111112');

  


  informix 截取 前几位数据 和调用 存储过程示例
  

execute PROCEDURE PRO_zrjUncarBaseTmp('32059800','20130101','20141201');
execute PROCEDURE PRO_zrjUncarBaseTmp('32059800',TO_DATE('20130101','%Y%m%d'),TO_DATE('20141201','%Y%m%d'));
select * from zrjUncarBaseTmp where comcode like '320555343'[1,4]||'%';
@call newreinsdb_dat:zbyanfa.pro_zrjuncarbasetmp(${sp_comcode_in||(null)||String||nullable ds=0 dt=VARCHAR dir=in}$, ${sp_bgndate||(null)||Date||nullable ds=0 dt=DATE dir=in}$, ${sp_enddate||(null)||Date||nullable ds=0 dt=DATE dir=in}$);select TO_CHAR(today,'%Y%m%d') from systables where tabid=1

  




  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-122943-1-1.html 上篇帖子: IBM实验室对SWT, Swing 和 AWT 的特征比较 下篇帖子: IBM网站上给出的XML的介绍(2)不完全摘录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表