[Seasar-user:16018] Re: [S2JDBC-Gen] Exe-Sql について
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2008年 10月 17日 (金) 02:05:08 JST
中村(taedium)です。
> CREATE OR REPLACE PROCEDURE PROC_RESULTSETS
> ( empCur OUT SYS_REFCURSOR,
> deptCur OUT SYS_REFCURSOR,
> employeeId IN NUMERIC,
> departmentId IN NUMERIC
> ) AS
> BEGIN
> OPEN empCur FOR SELECT * FROM EMPLOYEE WHERE employee_id >
> employeeId ORDER BY employee_id;
> OPEN deptCur FOR SELECT * FROM DEPARTMENT WHERE department_id >
> departmentId ORDER BY department_id;
> END PROC_RESULTSETS;
> /
>
> 上記のような形の場合 / で区切って欲しいのですが、通常の設定の場合BEGIN中の;で
> SQLが分断されてしまいます。(上記の場合/でも;でも区切られるのがOracleのGenの設定だと思いました)
Oracleの場合、/で区切るというのは対応しているつもりです。
私の環境では/で区切られて動作します。
SQLファイルに含まれるSQLのどこかでSQLやコメントのパースに
失敗していてそれが影響しているのかもしれません。
SQLファイル全体を見せてもらえないでしょうか?
ファイル内のSQLやコメントを減らした場合に
必ず発生するのかどうかも確認してもらえたらと思います。
一応、確認ですが、次の3点をチェックしてみてください。
1.MigrateタスクやLoad-Dataタスクで
blockDelimiter属性に"/"以外を指定していないか
2.s2jdbc.diconでdialectにOralceDialectを指定しているか
3.OracleGenDialectを拡張している場合、
createSqlBlockContextメソッドでOracleSqlBlockContextクラス
のインスタンスが返されるか
--
Toshihiro Nakamura
Seasar-user メーリングリストの案内