QA@IT
«回答へ戻る

40
 S2JBDC-genはSQLをJDBC経由で実行しますが、
-delimiterコマンドはmysqlからのコマンドラインからは実行できますがJDBCからは実行できません。
+delimiterコマンドはmysqlのコマンドラインからは実行できますがJDBCからは実行できません。
 
 本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。
 

S2JBDC-genはSQLをJDBC経由で実行しますが、
delimiterコマンドはmysqlのコマンドラインからは実行できますがJDBCからは実行できません。

本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。

ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、

  1. build.xmlにこのパラメータを設定して、
  2. ストアドプロシジャーのDDLの中では;を使って、
  3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、

s2jdbc-genからストアドプロシジャーを作成することが出来ると思います。

S2JBDC-genはSQLをJDBC経由で実行しますが、
delimiterコマンドはmysqlのコマンドラインからは実行できますがJDBCからは実行できません。

本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。

ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、
1. build.xmlにこのパラメータを設定して、
2. ストアドプロシジャーのDDLの中では;を使って、
3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、

s2jdbc-genからストアドプロシジャーを作成することが出来ると思います。

40
 本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。
 
 ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、
-1. 箇条書きbuild.xmlにこのパラメータを設定して、
+1. build.xmlにこのパラメータを設定して、
 2. ストアドプロシジャーのDDLの中では;を使って、
 3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、
 

S2JBDC-genはSQLをJDBC経由で実行しますが、
delimiterコマンドはmysqlからのコマンドラインからは実行できますがJDBCからは実行できません。

本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。

ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、

  1. build.xmlにこのパラメータを設定して、
  2. ストアドプロシジャーのDDLの中では;を使って、
  3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、

s2jdbc-genからストアドプロシジャーを作成することが出来ると思います。

S2JBDC-genはSQLをJDBC経由で実行しますが、
delimiterコマンドはmysqlからのコマンドラインからは実行できますがJDBCからは実行できません。

本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。

ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、
1. build.xmlにこのパラメータを設定して、
2. ストアドプロシジャーのDDLの中では;を使って、
3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、

s2jdbc-genからストアドプロシジャーを作成することが出来ると思います。

回答を投稿

S2JBDC-genはSQLをJDBC経由で実行しますが、
delimiterコマンドはmysqlからのコマンドラインからは実行できますがJDBCからは実行できません。

本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。

ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、

  1. 箇条書きbuild.xmlにこのパラメータを設定して、
  2. ストアドプロシジャーのDDLの中では;を使って、
  3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、

s2jdbc-genからストアドプロシジャーを作成することが出来ると思います。

S2JBDC-genはSQLをJDBC経由で実行しますが、
delimiterコマンドはmysqlからのコマンドラインからは実行できますがJDBCからは実行できません。

本来JDBCでは;でSQLが区切られないので、JDBCから";"こみでそのままでDDLを流せばストアドプロシジャーが作成されるのですが、s2jdbc-genの内部で実行するSQLを区切る単位として";"を使っているので、そのままではs2jdb-genがうまくSQLの区切りを認識できないと思います。

ドキュメント(http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/migrate.html )によると、AntタスクにstatementDelimiterというパラメーターがあるので、
1. 箇条書きbuild.xmlにこのパラメータを設定して、
2. ストアドプロシジャーのDDLの中では;を使って、
3. DDL(SQL)の実行の区切りになるところで ; 以外を使えば、

s2jdbc-genからストアドプロシジャーを作成することが出来ると思います。