本帖最后由 xiaoxiaoa2 于 2012-05-07 16:55:56 编辑

解决方案 »

  1.   

    SELECT OrderStatus into OrderStatus FROM OrderList WHERE OrderID=OrderID;
    你的这个select查出来不止1行记录,所以出问题了
      

  2.   

    我手动用这个语句,只有一行select orderstatus from orderlist where orderid='20120507000953605783';为什么呢
      

  3.   

    CREATE PROCEDURE cc(IN OrderID char,IN MysqlP_Price decimal,IN PayMode INT,OUT OrderStatus int)
    参数名改下,不要跟表的字段名一样,再试下
      

  4.   

    你好,谢谢你了,还是不行 我用这个语句都不行,查出来NULLDELIMITER //
    CREATE PROCEDURE aaa(IN MysqlP_Price decimal,IN PayMode INT,OUT OUTOrderStatus int)
    BEGIN
    DECLARE OUTOrderStatus INT(1);
        SELECT OrderStatus into OUTOrderStatus FROM OrderList WHERE OrderID='20120507000953605783';
    END//call aaa('99.00','3',@OUTOrderStatus);
      

  5.   

    SELECT OrderStatus into OrderStatus FROM OrderList WHERE OrderID=OrderID这个结果不唯一?SELECT OrderStatus into OrderStatus FROM OrderList WHERE OrderID=OrderID limit 1;这样
      

  6.   


    这个结果唯一的
    出来的结果是NULL
      

  7.   

    select orderstatus from orderlist where orderid ='20120507000953605783';出来的结果只有一行,正确的
    +-----------+
    |orderstatus|
    +-----------+
    |          3|
    +-----------+如果用这个
    DELIMITER //
    CREATE PROCEDURE abbBd(IN INOrderID CHAR,OUT OUTOrderStatus int)
    BEGIN
        SELECT OrderStatus into OUTOrderStatus FROM OrderList WHERE OrderID=INOrderID;
    END//call abbBd('20120507000953605783',@b);select @b;
    结果就是这样了
    +-----------+
    |         @b|
    +-----------+
    |       NULL|
    +-----------+
      

  8.   

    如果像这样
    DELIMITER //
    CREATE PROCEDURE abbBdEg(OUT OUTOrderStatus int)
    BEGIN
        SELECT OrderStatus into OUTOrderStatus FROM OrderList WHERE OrderID=20120507000953605783;
    END//call abbBdEg(@b)//
    SELECT @b//结果就是
    +-----------+
    |         @b|
    +-----------+
    |        3  |
    +-----------+是正确的,所以应该是 INOrderID 里面没有收到这个值,请问如何处理?是不是我的语句有问题
      

  9.   

    desc OrderList
    贴出来看一下表结构。
      

  10.   


    把你的参数改为IN INOrderID varchar(30),OUT OUTOrderStatus int