Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 此位置的Use输入无效_Mysql_Sql_Stored Procedures_Mysql Workbench - Fatal编程技术网

Mysql 此位置的Use输入无效

Mysql 此位置的Use输入无效,mysql,sql,stored-procedures,mysql-workbench,Mysql,Sql,Stored Procedures,Mysql Workbench,我正在尝试在MySQL Workbench中创建一个存储过程: USE `data_p`; DROP PROCEDURE IF EXISTS `Product`; DELIMITER $$ USE `data_p`$$ CREATE DEFINER=`data_s_admin`@`...` PROCEDURE `Product`( INOUT d_id INT, INOUT d_fk_c INT, INOUT d_s VARCHAR(255), INOUT d_p DECIMA

我正在尝试在MySQL Workbench中创建一个存储过程:

USE `data_p`;
DROP PROCEDURE IF EXISTS `Product`;
DELIMITER $$
USE `data_p`$$
CREATE DEFINER=`data_s_admin`@`...` PROCEDURE `Product`(

  INOUT d_id INT,
  INOUT d_fk_c INT,
  INOUT d_s VARCHAR(255),
  INOUT d_p DECIMAL,
  INOUT d_c_a DATE,
  INOUT d_o_p DECIMAL,
  INOUT d_s_c DECIMAL,
  INOUT d_x_s VARCHAR(20),
  INOUT d_d_w VARCHAR(20),
  INOUT d_fk_c_a INT,
  INOUT d_s enum('ac','in','de')
)

BEGIN
    DECLARE cs_id INT;
    DECLARE cs_fk_c INT;
    DECLARE cs_s VARCHAR(255);
    DECLARE cs_p DECIMAL;
    DECLARE cs_c_a DATE;
    DECLARE cs_o_p DECIMAL;
    DECLARE cs_s_c DECIMAL;
    DECLARE cs_x_s VARCHAR(20);
    DECLARE cs_d_w VARCHAR(20);
    DECLARE cs_fk_c_a INT;
    DECLARE cs_s enum('ac','in','de');

 SELECT 

   d_id ,
   d_fk_c ,
   d_s,
    d_p ,
   d_c_a ,
   d_o_p ,
   d_s_c ,
   d_x_s,
   d_d_w,
   d_fk_c_a,
   d_s
 )
 INTO 

  cs_id,
  cs_fk_c,
  cs_s,
  cs_p,
  cs_c_a,
  cs_o_p,
  cs_s_c,
  cs_x_s,
  cs_d_w,
  cs_fk_c_a,
  cs_s

 FROM 

        data_p.cas
 WHERE 
        cs_s = d_s AND cs_s = 'ac';

 END $$
 DELIMITER ;
当我单击data_s==>存储过程时,我创建了新的存储过程,然后粘贴了这段代码, 我的错误是: 语法错误:“USE”在此位置不是有效的输入 语法错误:如果:此位置意外

有什么问题?我真的很想解决这个问题,以了解有多少行受到影响

我在数据库“data_s”中创建存储过程,并从“data_p”返回所有数据

谁能帮帮我吗


非常感谢您在使用对象编辑器时提供的帮助(在模式树的上下文菜单中选择“创建存储过程…”时会得到这些帮助),您不需要添加所有装饰。只需编写存储过程,无需使用分隔符和DROP。应用更改时,您将看到MySQL Workbench自动为您创建一个USE命令(取决于您单击哪个模式触发SP编辑器)。在再次创建现有SP之前,应手动删除该SP


但是,如果改用SQL编辑器,则需要所有的修饰。

虽然这是一个老问题,但没有看到答案,但我设法解决了同样的问题

文件可能是通过BOM另存为UTF8(或内容是从此类文件复制的)

在这种情况下,请尝试以UTF8格式保存文件(不带BOM),然后重新运行代码

对我来说,它解决了同样的问题

注: 1) 例如,可以使用Notepadd++更改编码。
2) 请注意,BOM是字节顺序标记的首字母缩写,它是文件开头的一个短字节序列,用于标记文件的编码。

谢谢您的回答,但该过程返回空字段,如果我在“创建过程()中添加数据库表的11个inout字段,则会显示此错误。”无效参数预期值为11。嗯,这听起来像是另一个问题,例如,使用错误数量的参数或类似参数调用过程。与原问题无关。也许你应该接受这个答案,如果它使你更进一步,并打开一个新的一个与新问题的细节?我解决了参数数量的问题,我现在的问题“它返回空字段”与我的第一个问题有关,因为我只是在删除存储过程之后选择*:删除过程如果存在产品;从数据_p.cas中选择*;“sql”选项卡上的分隔符|用于执行sql查询它工作并显示所有行。但是,当我创建一个新的存储过程并放入相同的查询时,它不接受数据库数据中的select*或use data\u p。它不起作用。谢谢,它真的很有帮助。我很挣扎,很惊讶为什么我不能加载文件。