当前位置: 代码迷 >> Oracle管理 >> oracle sql可以定义变量吗?或许其他办法
  详细解决方案

oracle sql可以定义变量吗?或许其他办法

热度:97   发布时间:2016-04-24 04:19:07.0
oracle sql可以定义变量吗?或者其他办法?
本帖最后由 u014640667 于 2014-05-15 19:03:09 编辑

      select months_between(SYSDATE,TO_DATE('19880811','yyyy-mm-dd'))/12   mon_between
                                      from  aa
这样能看出是25岁大概
当我把19880811这个固定的内容变成数据库中值的时候
当身份证是15位的时候前面补全19在截取,当18位的时候就截取值
     select months_between(SYSDATE,TO_DATE(CASE
                                      WHEN LENGTH(SFZH) = 15 THEN
                                      '19' || SUBSTR(SFZH, 7, 6)
                                      ELSE
                                      SUBSTR(SFZH, 7, 8)
                                      END,'yyyy-mm-dd'))/12   
                                      from  aa
查出结果不对为什么啊?数据库中值也是19880811 
     select months_between(SYSDATE,TO_DATE(
                                      SUBSTR(SFZH, 7, 8)
                                      ,'yyyy-mm-dd'))/12   
                                      from  aa
这样写也对了。是不是case when 的时候有影响啊?

------解决方案--------------------

declare m_int int ;
begin
select count(*) into m_int from mytable where ..... ; 
for i in 1..m_int loop
-- to do ......
end loop ; 
end ; 
  相关解决方案