【问题标题】:MySQL Procedure in Oracle SQLDeveloperOracle SQLDeveloper 中的 MySQL 过程
【发布时间】:2012-07-05 22:49:47
【问题描述】:

我是 MySQL 新手,我正在尝试创建一个过程。我连接到数据库并使用 Oracle SQLDeveloper 处理数据。

当我尝试将以下内容作为脚本执行时...

DELIMITER // 
CREATE PROCEDURE GetAllProducts() 
BEGIN 
SELECT * FROM products; 
END // 
DELIMITER ; 

我收到以下错误...

Error starting at line 1 in command:
DELIMITER //
Error at Command Line:1 Column:0
Error report:
SQL Error: 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 'DELIMITER //' at line 1

我正在使用最新版本的 Oracle SQL Developer 以及 las MySql 版本(两者都安装了)

有人可以帮助我了解如何使用分隔符吗?

谢谢, 狮子座

【问题讨论】:

  • 我的猜测:在定义分隔符的句子生效之前,您需要使用旧的分隔符。因此它应该是DELIMITER //;
  • @Leo 如果对您有用,请接受答案

标签: mysql delimiter procedure


【解决方案1】:

您的代码是 100% 正确的。 DELIMITER 不是 MySQL 命令,该命令必须得到客户端的支持。 DELIMITER 帮助客户端解析脚本中的语句。

您的过程只有一个语句,因此您可以在没有 BEGIN...END 和 DELIMITERS 的情况下重写它,例如-

CREATE PROCEDURE GetAllProducts() 
SELECT * FROM products;

您也可以尝试其他支持 DELIMITER 的客户端:mysql — The MySQL Command-Line Tool、GUI 工具 - dbForge Studio for MySQL(免费快递版)等。

【讨论】:

  • 谢谢德瓦特。所以最后是客户端不支持“分隔符”更改......嗯,没想到。我将需要获得另一个客户端,mysql 命令行很好,但当你有大量代码时不会太热情,dbForge Studio 看起来很有希望,但如果你需要超越程序调试等基础知识,它仍然不是完全免费的。仍然很好东西 :) 问候,狮子座。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
相关资源
最近更新 更多