[Seasar-user:21755] 【DBFlute】ストアド・ファンクションのCreate文はどこに置くのでしょうか

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2013年 11月 18日 (月) 20:25:56 JST


こんばんわ、yoshiです。

DBFlute1.0.5A / Oracle(10g)を使用しています。

 ストアド・ファンクションを使用しているのですが

 ストアド・ファンクションのCreate文はどこに置くのが正しいやり方でしょうか
?

1.playsqlの下に配置してreplace-schemaタスクで作成されるようにする。

2.外出しSQLと同じ所に配置してsql2entityタスクで作成されるようにする。


1のやり方で行うとなぜか以下のエラーが発生し作成されません。

[SQLException]
java.sql.SQLException
ORA-06550: 行3、列10:
PLS-00103: 記号"end-of-file"が見つかりました。 次のうちの1つが入るとき:

   . ( * @ % & = - + ; < / > at in is mod remainder not rem
   <an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_
   LIKE4_ LIKEC_ between || multiset member SUBMULTISET_

その他のオラクルのクライアントで作成すると問題なく作成できます。

2のやり方で行うと、そのストアドファンクションを使うSQLが先に実行され
エラーになってしまいます。

作成しようとしているストアドファンクションは以下の様なものです。

CREATE OR REPLACE FUNCTION getNmArrivshipKb(kbArrivship in 
MA_CODE.CD_DETAIL%TYPE) return nvarchar2 is
  ret MA_CODE.NM_DETAIL%TYPE;
begin
  select NM_DETAIL into ret
  from MA_CODE
  where KB_SYSTEM = 'CMN'
  and CD_DIVIDE = 'KB_ARRIVSHIP'
  and CD_DETAIL = kbArrivship;
  return ret;
exception
when others then
  return null;
end;

ご存知のかたがおられましたらよろしくお願いします。

以上、よろしくお願いいたします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20131118/fe277427/attachment.html>


Seasar-user メーリングリストの案内