[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 メーリングリストの案内