create procedure sp_cube_inverter_d (in p_nowdate datetime)
begin
  declare v_nowdate    char(8);
  declare v_curdate    datetime;  set v_curdate = left(p_nowdate,10);
  set v_nowdate = replace(cast(v_curdate as char(10)),'-','');
>[错误] 脚本行:1-90 --------------------------------------
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'procedure sp_cube_inverter_d ( in p_nowdate datetime)
begin
  declare v_nowdate ' at line 45  警告:---> 
   W (1): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'procedure sp_cube_inverter_d ( in p_nowdate datetime)
begin
  declare v_nowdate ' at line 45

解决方案 »

  1.   

    ( in p_nowdate datetime )
    加个空格就好了,晕。mysql语法太敏感了
      

  2.   

    应该不是空格的原因吧,下面测试没有任何问题啊。mysql> delimiter //
    mysql> create procedure sp_cube_inverter_d (in p_nowdate datetime)
        -> begin
        ->   declare v_nowdate    char(8);
        ->   declare v_curdate    datetime;
        ->
        ->   set v_curdate = left(p_nowdate,10);
        ->   set v_nowdate = replace(cast(v_curdate as char(10)),'-','');
        -> end //
    Query OK, 0 rows affected (0.26 sec)mysql> delimiter ;
    mysql>
      

  3.   

    果真是加了空格就不报错了呀,其他的我什么都没改,我用的Aqua Data Studio 7.5。
    哎,不纠结了,结账吧