[seasar-dotnet:1357] Re: [DBFlute] take-finally.sql でOracleストアドプロシージャを実行したい。

西山 はじめ [E-MAIL ADDRESS DELETED]
2009年 6月 4日 (木) 19:04:21 JST


お世話になっております。
西山です。

SQL*PLUSからは正常に実行できます。

このプロシージャは、replace-shemaによってデータが入った後 
に、IDと関連付けたシーケンスの値を、IDの最大値+1にする処理が 
入っております。
Oracleでは、シーケンスを再作成しなければいけない為、このよう 
に処理しております。

また、メンテナンスでデータベースを直接編集した際にもシーケン 
スを再作成することで重複エラーが起きない様する為にも準備して 
あるものです。

CREATE SEQUENCE 文に、SELECTを含めることが出来ないという理由 
も有ります。


 > Create文だけを「replace-schema-sequence.sql」みたいな感じで
 > 管理することでそのストアド呼び出しを回避はできないでしょ 
うか?

SQL*PLUSから実行すればいいだけですが、replace-schemaで実行し 
たほうが管理上楽になるなぁと思った次第です。

難しいようでしたらスルーしてください。


[2009/06/04 18:30] kubo さんは書きました。:
> 久保(jflute)です。
> 
> ありがとうございます。
> take-finallyであることは関係ないようですね。
> 
> ちなみに、SQL*Plusとか別のツールから
> EXEC ALL_RECREATE_SEQUENCE;
> は実行できますか?(念のための確認)
> 
> JDBCでStatementで単純にその文字列を
> execute(sql)しているだけなので、それでダメなら
> なんともこれ以上どうすれば良いかわかりませんね...
> (ちゃんとCallableStatementとか使わないとダメなのかな!?)
> 
> ちなみにシーケンスの管理をストアド内でやってるのでしょうか?
> ReplaceSchemaは既存シーケンスを自動でDropしますので、
> Create文だけを「replace-schema-sequence.sql」みたいな感じで
> 管理することでそのストアド呼び出しを回避はできないでしょうか?
> 
> 2009/6/4 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>> お世話になっております。
>> 西山です。
>>
>> 回答ありがとうございます。
>>
>> replace-schema.sqlでも同じでした。
>>
>> ログに出たメッセージは以下の通りです。
>>
>>  EXEC ALL_RECREATE_SEQUENCE;
>>  >> ORA-00900: SQL文が無効です。
>>     (SQLState=42000 ErrorCode=900)
>>
>> このエラーが出る原因は、以下のようです。
>> 【エラーの原因】
>> 入力した文が有効なSQL文として認められない。このエラーは、SQL の構文が間違っているか、インストール時にPL/SQLがインストー
>> ルされていない場合に発生する。
>>  また、サードパーティ製品のツールを使用した場合に標準SQLで ないSQL文がOracleに投げられている可能性もある。
>>
>> 以上よろしくお願いいたします。
>>
>> [2009/06/04 18:09] kubo さんは書きました。:
>>> 久保(jflute)です。
>>>
>>> 西山さん、こんにちは
>>>
>>> 取り急ぎ、replace-schema.sqlで同じことすると
>>> どうなりますでしょうか?
>>> (take-finally.sql固有の話なのかどうかの切り分け)
>>>
>>> あと、「ORA-00900」ってOracle的には
>>> どんなことを示すエラーでしょうか?
>>>
>>> 2009/6/4 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>> お世話になっております。
>>>> 西山です。
>>>>
>>>> DBFluteで、replace-schema.batでテーブルを生成した後、take-
>>>> finally.sqlでストアドプロシージャの実行したいと思っております。
>>>>
>>>> take-finally.sqlに、
>>>> EXEC PROCEDURE_NAME;
>>>>
>>>> と記述しても、ORA-0900:のエラーが出てしまいます。
>>>>
>>>> 何か手段が有りますでしょうか。
>>>>
>>>> 実行環境
>>>> DB:Oracle9i
>>>> DBFlute:0.8.9
>>>>
>>>> 以上よろしくお願いいたします。
>>>>
>>>> --
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>> 株式会社フジミック システム開発センター ソフトウェア開発部
>>>> 西山 創
>>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>>
>>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>>> [TEL]:03-5495-1060
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>
>>>
>>
>> --
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 株式会社フジミック システム開発センター ソフトウェア開発部
>>  西山 創
>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>
>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>> [TEL]:03-5495-1060
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 
> 
> 


-- 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
株式会社フジミック システム開発センター ソフトウェア開発部
 西山 創
[E-mail]:[E-MAIL ADDRESS DELETED]
 
〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
[TEL]:03-5495-1060
++++++++++++++++++++++++++++++++++++++++++++++++++++++++



seasar-dotnet メーリングリストの案内