create  procedure myproc(
                        in deptnox int,
                        out low decimal(8,2),
                        out height decimal(8,2),
                        out myavg decimal(8,2))
BEGIN
select min(sal) into low from emp where emp.deptno=deptnox;
select max(sal) into height from emp  where emp.deptno=deptnox;
select avg(sal) into myavg from emp  where emp.deptno=deptnox;
END;
这个语句有什么语法错误吗,为什么我一直在mysql query brower 中不能执行呢,提示 myavg 未定义。。

解决方案 »

  1.   

    直接到MYSQL命令行工具中试验一下,并且贴出你的执行结果和错误信息以供分析。
      

  2.   

    mysql command line 下通过
      

  3.   

    我没什么经验,能说说为什么吗,
    在mysql command 下 执行之前是加了  "delimiter // "的,
    现在再mysql browser  中加上 "delimiter // " 同样通过
      

  4.   

    如果不加 delimiter //
    当你提交语句分析到 
    create  procedure myproc(
                           in deptnox int,
                           out low decimal(8,2),
                           out height decimal(8,2),
                           out myavg decimal(8,2))
    BEGIN
    select min(sal) into low from emp where emp.deptno=deptnox;的时候就提交运行了,当然要出错。
      

  5.   

    先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html