2017-08-11 4 views
1
CREATE PROCEDURE `new_procedure`() 
declare v int; 
BEGIN 

v := 10; 

dbms_output.put_line(v); 

END 

ここでは、この簡単なコードを作成手順部分に書いていて、MySQL Workbenchでエラーが発生しました。MySQL Workbenchでpl/sqlまたは同等のものを書くにはどうすればいいですか?

DELIMITER // 
CREATE PROCEDURE MyStoredProcedure 
(IN colValue CHAR(20)) 
BEGIN 
    INSERT INTO MyTable(MyColumn) VALUES(colValue); 
END // 
DELIMITER ; 

あなたはMySQL Documentationでそれについての詳細を読むことができます:これは、あなたがWorkbenchからMySQLでストアドプロシージャを作成する方法です

+1

....何のエラー? – Clonkex

+0

[SQLエラー:#1064、mysqlを使用してplsqlで関数を作成する場合](https://stackoverflow.com/questions/25077106/sql-error-1064-when-creating-function-in-plsql-using-mysql ) –

+1

mysql workbenchはmysqlでしか動作しませんが、コードはplsqlのように見えます。あなたはplsqlをmysqlに変換しようとしていますか(dbms_output.put_lineはmysqlに存在しません)か、間違ったツールを使用していますか(おそらくoracleにはsql開発者を使用する必要があります) –

答えて

0

CALL MyStoredProcedure(<some_value>);

ストアドプロシージャは、そのためのバージョンを実行するようにしてくださいMySQL 5で導入されました:。手順を実行するには

一時的にDELIMITERを変更する必要があるのはなぜですか? docから

By default, mysql itself recognizes the semicolon as a statement delimiter, so you must redefine the delimiter temporarily to cause mysql to pass the entire stored program definition to the server. To redefine the mysql delimiter, use the delimiter command.

関連する問題