2012-07-05 5 views
1

저는 MySQL에 익숙하며 프로 시저를 만들려고합니다. 데이터베이스에 연결하고 Oracle SQLDeveloper를 사용하여 데이터를 처리합니다.Oracle SQLDeveloper의 MySQL 프로 시저

내가 스크립트로 다음을 실행하려고

...

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

내가받을 다음과 같은 오류 ... 나는 오라클 SQL Developer의 최신 버전으로 사용하고

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 

잘 MySQL의 MySQL 버전 (방금 설치 모두)

누군가가 구분 기호를 사용하는 방법에 나를 도울 수 있습니까?

덕분에, 레오

+0

내 생각 엔 - mysql — The MySQL Command-Line Tool, GUI 툴 : 문장 정의 구분이 유효 할 때까지, 당신이 필요 -

CREATE PROCEDURE GetAllProducts() SELECT * FROM products; 

또한 다른 DELIMITER를 지원하는 클라이언트를 시도 할 수 있습니다 이전 구분 기호를 사용합니다. 따라서 DELIMITER //가되어야합니다. – Alfabravo

+0

@Leo 도움이 되었다면 답변을 수락하십시오 – Spring

답변

1

귀하의 코드가 100 % 정확합니다. DELIMITER는 MySQL 명령이 아니므로 클라이언트가이 명령을 지원해야합니다. DELIMITER는 클라이언트가 스크립트의 명령문을 구문 분석하도록 도와줍니다.

프로 시저에 하나의 명령문이 있으므로 BEGIN ... END 및 DELIMITERS없이 다시 작성할 수 있습니다. dbForge Studio for MySQL (무료 Express 버전), 또는 등

+0

Devart 감사합니다. 그래서 결국 그것은 "구분 기호"변경을 지원하지 않는 클라이언트입니다 ... mhhh, 그것을 기대하지 않았습니다. 다른 클라이언트를 가져올 필요가 있습니다. mysql 커맨드 라인은 괜찮습니다. 그러나 코드의 큰 부분을 가지고있을 때, dbForge Studio는 유망 해 보였지만 여전히 프로 시저 디버깅과 같은 기본 사항을 넘어서는 경우 무료로 완성되지 않습니다. 물건 :) 감사합니다, 레오. – Leo