2012-07-05 64 views
1

我是新來的MySQL,我試圖創建一個過程。我連接到數據庫並使用Oracle SQLDeveloper處理數據。Oracle SQLDeveloper中的MySQL過程

當我嘗試執行下面的腳本...

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作爲以及拉斯MySql版本(只是安裝兩者)

有人可以幫助我如何使用分隔符?

感謝, 利奧

+0

我的猜測:直到句子定義分隔符是有效的,你需要使用舊的分隔符。因此它應該是DELIMITER //; – Alfabravo 2012-07-05 22:52:43

+0

@Leo如果對你有用,請接受答案 – Spring 2012-12-13 10:42:32

回答

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(免費版),或等。

+0

謝謝Devart。所以最終它是不支持「分隔符」更改的客戶端...... mhhh,沒想到。我需要獲得另一個客戶端,當你有大量的代碼時,mysql命令行很好,但不會太火,dbForge Studio看起來很有前途,但如果你需要超越基本的程序調試等,仍然不完全免費。仍然不錯東西:)問候,獅子座。 – Leo 2012-07-06 14:32:23