CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  SQL Anywhere Studio

一个简单的Oracle的存储过程,为什么会错误,请大虾指正,谢谢

楼主czb(草中宝)2001-10-04 12:25:08 在 其他数据库开发 / SQL Anywhere Studio 提问

如下,我在SQLPLUS下运行的时候总是说“警告:   创建的过程带有编译错误”请问是为什么?  
  create   table   person(id   number(12,0)   not   null   primary   key,name   char(10)   not   null,sex   char(2)     not   null);  
  create   sequence   id;  
  --上面的运行正确  
  CREATE   OR   REPLACE   PROCEDURE   addperson(name   in   varchar2,sex   in   varchar2,idReturn   out   number)   IS  
  BEGIN  
  insert   into   person(id,name,sex)   values(id.nextval,:name,:sex);  
  select   id.currval   into   idReturn;  
  END   addperson;  
  在insert的时候,后面的字符串该如果加单引号啊,还有select   id.currval   into   idReturn会不会存在并发性的问题啊,是否需要在上面的存储过程运行的时候对sequence   id进行锁定呢?如果需要锁定,怎么锁定? 问题点数:30、回复次数:2Top

1 楼KingSunSha(弱水三千)回复于 2001-10-04 13:04:14 得分 30

改正第一版(仅仅通过调试):  
  CREATE   OR   REPLACE   PROCEDURE   addperson(name   in   varchar2,sex   in   varchar2,idReturn   out   number)   IS  
  BEGIN  
  insert   into   person(id,name,sex)   values(id.nextval,name,sex);  
  select   id.currval   into   idReturn   from   dual;  
  END   addperson;  
   
  改正第二版(避免用NAME这样的变量,   否则容易和字段名混淆;   同时避免SEQUENCE   ID在前后两次取值过程中有差异):  
  CREATE   OR   REPLACE   PROCEDURE   addperson  
            (p_name   in   varchar2,  
              p_sex     in   varchar2,  
              idReturn   out   number)   IS  
      temp_id   number;  
  BEGIN  
      select   id.nextval  
          into   temp_id  
          from   dual;  
           
      insert   into   person   (id,name,sex)  
      values(temp_id,p_name,p_sex);  
       
      idReturn   :=   temp_id;  
  END   addperson;  
  Top

2 楼czb(草中宝)回复于 2001-10-04 13:42:27 得分 0

谢谢KingSunSha(弱水三千)的解答,分数过几天就会送上。Top

相关问题

  • Oracle存储过程
  • Oracle 存储过程
  • 调用oracle存储过程出现错误,高手帮帮忙!
  • 存储过程的错误????
  • 存储过程错误
  • 调用oracle存储过程错:ora-06502:PL/SQL数字或值错误
  • 访问oracle存储过程,出现如下错误,怎样解决?谢谢!
  • Oracle存储过程(急)
  • oracle的存储过程
  • Oracle存储过程两问

关键词

  • null
  • idreturn
  • addperson
  • sex
  • currval
  • nextval
  • 锁定
  • sequence
  • person
  • replace procedure

得分解答快速导航

  • 帖主:czb
  • KingSunSha

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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