CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

很简单的存储过程为什么会错呢?

楼主shouhuzhe(守护者)2005-01-24 08:49:57 在 Oracle / 基础和管理 提问

create   or   replace   function   f_95598zlwz(as_zlwz   in   varchar2(2))   return   number(2)  
  as  
      Result   number(2);  
  begin  
      case   as_zlwz   is  
          when   'sq'   Result   =   1 --申请  
          when   'kc'   Result   =   2 --用电勘察  
          when   'sp'   Result   =   3 --审批  
          when   'tf'   Result   =   4 --应收费  
          when   'st'   Result   =   5 --实收费  
          when   'bj'   Result   =   6 --配表意见  
          when   'jg'   Result   =   7 --竣工验收  
          when   'bg'   Result   =   8 --竣工报告  
          when   'ht'   Result   =   9 --用电合同  
          when   'bk'   Result   =   10 --表库配表  
          when   'zb'   Result   =   11 --装表任务  
          when   'zg'   Result   =   12 --装表归档  
          when   'hb'   Result   =   13 --拆回表归库  
          when   'dj'   Result   =   14 --电价审核  
          when   'zw'   Result   =   15 --帐务工作票审核  
          when   'gd'   Result   =   16 --工作票归档  
          when   'zf'   Result   =   17 --作废  
          when   'gc'   Result   =   18 --工程管理  
          when   others   Result   =   0 --其它  
      end   case;  
      return(Result);  
  end   f_95598zlwz;  
   
  问题点数:20、回复次数:13Top

1 楼shouhuzhe(守护者)回复于 2005-01-24 08:50:20 得分 0

Compilation   errors   for   FUNCTION   HNDL.F_95598ZLWZ  
   
  Error:   PLS-00103:   出现符号   "("在需要下列之一时:  
                :=.),@%defaultcharacter  
                符号   ":="   被替换为   "("   后继续。  
  Line:   1  
  Text:   create   or   replace   function   f_95598zlwz(as_zlwz   in   varchar2(2))   return   number(2)  
   
  Error:   PLS-00103:   出现符号   "("在需要下列之一时:  
                .@%;isauthidasclusterorder  
                      usingexternalcharacterdeterministicparallel_enablepipelined  
                      aggregate  
  Line:   1  
  Text:   create   or   replace   function   f_95598zlwz(as_zlwz   in   varchar2(2))   return   number(2)  
  Top

2 楼shouhuzhe(守护者)回复于 2005-01-24 08:50:36 得分 0

错误如上,各位帮忙一下Top

3 楼luxuezhu(csdn完善你的blog吧)回复于 2005-01-24 08:55:56 得分 5

varchar2(2)   to   charTop

4 楼wangybyangxr(王永斌)回复于 2005-01-24 08:59:33 得分 10

(as_zlwz   in   varchar2(2))   return   number(2)  
  改为(as_zlwz   in   varchar2)   return   number  
  形参的类型不要带大小,直接用类型就行了  
  Top

5 楼shouhuzhe(守护者)回复于 2005-01-24 09:03:55 得分 0

修改后错误果然没有了,可是出现如下错误  
  when   'sq'   Result   =   1 --申请  
   
  Compilation   errors   for   FUNCTION   HNDL.F_95598ZLWZ  
   
  Error:   PLS-00103:   出现符号   "WHEN"在需要下列之一时:  
                notnulldangling  
  Line:   6  
  Text:   when   'sq'   Result   =   1 --申请  
  Top

6 楼chshzh2000(地皮)回复于 2005-01-24 09:45:28 得分 0

关注Top

7 楼shouhuzhe(守护者)回复于 2005-01-24 09:54:54 得分 0

create   or   replace   function   f_95598zlwz(as_zlwz   varchar2)   return   number  
  as  
      Result   number(2);  
  begin  
      case   as_zlwz   is  
          when   ='sq'   then   Result   =   1 --申请  
          when   ='kc'   then   Result   =   2 --用电勘察  
          when   ='sp'   then   Result   =   3 --审批  
          when   ='tf'   then   Result   =   4 --应收费  
          when   ='st'   then   Result   =   5 --实收费  
          when   ='bj'   then   Result   =   6 --配表意见  
          when   ='jg'   then   Result   =   7 --竣工验收  
          when   ='bg'   then   Result   =   8 --竣工报告  
          when   ='ht'   then   Result   =   9 --用电合同  
          when   ='bk'   then   Result   =   10     --表库配表  
          when   ='zb'   then   Result   =   11     --装表任务  
          when   ='zg'   then   Result   =   12     --装表归档  
          when   ='hb'   then   Result   =   13     --拆回表归库  
          when   ='dj'   then   Result   =   14     --电价审核  
          when   ='zw'   then   Result   =   15     --帐务工作票审核  
          when   ='gd'   then   Result   =   16     --工作票归档  
          when   ='zf'   then   Result   =   17     --作废  
          when   ='gc'   then   Result   =   18     --工程管理  
          when   others   then   Result   =   0 --其它  
      end   case;  
      return(Result);  
  end   f_95598zlwz;  
  Top

8 楼shouhuzhe(守护者)回复于 2005-01-24 09:55:01 得分 0

Compilation   errors   for   FUNCTION   HNDL.F_95598ZLWZ  
   
  Error:   PLS-00103:   出现符号   "WHEN"在需要下列之一时:  
                notnulldangling  
  Line:   6  
  Text:   when   ='sq'   then   Result   =   1 --申请  
  Top

9 楼qiaozhiwei(乔)回复于 2005-01-24 10:13:37 得分 5

create   or   replace   function   f_95598zlwz(as_zlwz   varchar2)   return   number  
  as  
      Result   number(2);  
  begin  
      case   as_zlwz    
          when   'sq'   then   Result   =   1; --ÉêÇë  
          when   'kc'   then   Result   =   2; --Óõ翱²ì  
          when   'sp'   then   Result   =   3; --ÉóÅú  
          when   'tf'   then   Result   =   4; --Ó¦ÊÕ·Ñ  
          when   'st'   then   Result   =   5; --ʵÊÕ·Ñ  
          when   'bj'   then   Result   =   6; --Åä±íÒâ¼û  
          when   'jg'   then   Result   =   7; --¿¢¹¤ÑéÊÕ  
          when   'bg'   then   Result   =   8; --¿¢¹¤±¨¸æ  
          when   'ht'   then   Result   =   9; --ÓõçºÏͬ  
          when   'bk'   then   Result   =   10;     --±í¿âÅä±í  
          when   'zb'   then   Result   =   11;     --×°±íÈÎÎñ  
          when   'zg'   then   Result   =   12;     --×°±í¹éµµ  
          when   'hb'   then   Result   =   13 ;     --²ð»Ø±í¹é¿â  
          when   'dj'   then   Result   =   14 ;     --µç¼ÛÉóºË  
          when   'zw'   then   Result   =   15 ;     --ÕÊÎñ¹¤×÷ƱÉóºË  
          when   'gd'   then   Result   =   16 ;     --¹¤×÷Ʊ¹éµµ  
          when   'zf'   then   Result   =   17 ;     --×÷·Ï  
          when   ='gc'   then   Result   =   18 ;     --¹¤³Ì¹ÜÀí  
          else   Result   =   0 ; --ÆäËü  
      end   case;  
      return(Result);  
  end   f_95598zlwz;  
  Top

10 楼qiaozhiwei(乔)回复于 2005-01-24 10:15:27 得分 0

create   or   replace   function   f_95598zlwz(as_zlwz   varchar2)   return   number  
  as  
      Result   number(2);  
  begin  
      case   as_zlwz    
          when   'sq'   then   Result   =   1; --申请  
          when   'kc'   then   Result   =   2; --用电勘察  
          when   'sp'   then   Result   =   3; --审批  
          when   'tf'   then   Result   =   4; --应收费  
          when   'st'   then   Result   =   5; --实收费  
          when   'bj'   then   Result   =   6; --配表意见  
          when   'jg'   then   Result   =   7; --竣工验收  
          when   'bg'   then   Result   =   8; --竣工报告  
          when   'ht'   then   Result   =   9; --用电合同  
          when   'bk'   then   Result   =   10;     --表库配表  
          when   'zb'   then   Result   =   11;     --装表任务  
          when   'zg'   then   Result   =   12;     --装表归档  
          when   'hb'   then   Result   =   13;     --拆回表归库  
          when   'dj'   then   Result   =   14;     --电价审核  
          when   'zw'   then   Result   =   15;     --帐务工作票审核  
          when   'gd'   then   Result   =   16;     --工作票归档  
          when   'zf'   then   Result   =   17;     --作废  
          when   'gc'   then   Result   =   18;     --工程管理  
          else   Result   =   0; --其它  
      end   case;  
      return(Result);  
  end   f_95598zlwz;  
  Top

11 楼shouhuzhe(守护者)回复于 2005-01-24 10:20:40 得分 0

高定了,好像不能用     case   when的样子  
   
  create   or   replace   function   f_95598zlwz(as_zlwz   varchar2)   return   number  
  as  
      Result   number(2);  
  begin  
      Result   :=   0   ;    
      if   as_zlwz='sq'   then   Result   :=   1;     end   if; --申请  
      if   as_zlwz='kc'   then   Result   :=   2;     end   if; --用电勘察  
      if   as_zlwz='sp'   then   Result   :=   3;     end   if; --审批  
      if   as_zlwz='tf'   then   Result   :=   4;     end   if; --应收费  
      if   as_zlwz='st'   then   Result   :=   5;     end   if; --实收费  
      if   as_zlwz='bj'   then   Result   :=   6;     end   if; --配表意见  
      if   as_zlwz='jg'   then   Result   :=   7;     end   if; --竣工验收  
      if   as_zlwz='bg'   then   Result   :=   8;     end   if; --竣工报告  
      if   as_zlwz='ht'   then   Result   :=   9;     end   if; --用电合同  
      if   as_zlwz='bk'   then   Result   :=   10;   end   if;     --表库配表  
      if   as_zlwz='zb'   then   Result   :=   11;   end   if;     --装表任务  
      if   as_zlwz='zg'   then   Result   :=   12;   end   if;     --装表归档  
      if   as_zlwz='hb'   then   Result   :=   13;   end   if;     --拆回表归库  
      if   as_zlwz='dj'   then   Result   :=   14;   end   if;     --电价审核  
      if   as_zlwz='zw'   then   Result   :=   15;   end   if;     --帐务工作票审核  
      if   as_zlwz='gd'   then   Result   :=   16;   end   if;     --工作票归档  
      if   as_zlwz='zf'   then   Result   :=   17;   end   if;     --作废  
      if   as_zlwz='gc'   then   Result   :=   18;   end   if;     --工程管理  
   
      return(Result);    
  end   f_95598zlwz;    
   
  Top

12 楼leborety(那只螃蟹)回复于 2005-01-24 10:23:15 得分 0

result   :=   1  
   
  not    
   
  rusult   =1Top

13 楼shouhuzhe(守护者)回复于 2005-01-24 10:23:30 得分 0

谢谢大家帮忙Top

相关问题

  • 很简单的存储过程为什么会错
  • 一个简单的Oracle的存储过程,为什么会错误,请大虾指正,谢谢
  • 这样的存储过程为什么会错误?
  • 第一次使用ORACLE,如此简单的存储过程也会错,实在是找不出了,求救
  • 简单的存储过程!
  • 一简单存储过程
  • 简单存储过程
  • 简单问题:这样的存储过程为什么不对?(oracle)
  • 简单问题:这个存储过程为什么这样写不对?
  • 为什么存储过程不成功???

关键词

  • zlwz
  • result
  • sq
  • 符号
  • 用电
  • 申请
  • pls
  • number
  • 出现
  • replace function

得分解答快速导航

  • 帖主:shouhuzhe
  • luxuezhu
  • wangybyangxr
  • qiaozhiwei

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo