[seasar-dotnet:1896] Re: [DBFlute]OutsideSQLでのエラー

西山はじめ [E-MAIL ADDRESS DELETED]
2010年 12月 17日 (金) 00:28:04 JST


hajimeniです。

Oracleのバージョンは忘れましたが、NVARCHARにバインドしてINSERTするとおきた場合があった気がします。

何かの参考になれば。

--
西山はじめ



2010年12月16日22:11 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> こんばんは、uparrowさん
> 取り急ぎですが、
>
> o ORA-12704 がOracle的にどんなときに発生するエラーなのか
> o カラムの型はどんな型なのか (特にパラメータとして使っているINPUT_TIME)
>  -> character set mismatch というメッセージがあるので型が疑わしいので
> o OutsideSqlTest は動くか?
>  -> /*pmb.INPUT_TIME*/ はコメントとしてみなされていれば通る筈(!?)
>
> など、この辺りの情報も一緒に出して頂けると、
> もっとML閲覧者も追求がしやすいと思います。
>
> 2010/12/16  <[E-MAIL ADDRESS DELETED]>:
>> こんばんは、uparrowと申します。
>>
>> DBFluteのOutsideSQLでinsertを発行する必要があるのですが、
>> 問題が発生してしまいメールいたしました。
>> PKがないテーブルへデータをINSERTする必要があるためOutsideSQLで実行したい
>> のですが、次のようなログが出力され失敗します。
>>
>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> The SQL failed to execute!
>>
>> [Advice]
>> Please confirm the Exception message.
>>
>> [Exception]
>> Seasar.Framework.Exceptions.SQLRuntimeException
>> [ESSR0071]SQLException occured, because System.Data.OracleClient.OracleException: ORA-12704: character set mismatch
>>
>>   場所 System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
>>   場所 System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
>>   場所 System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
>>   場所 System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
>>   場所 Seasar.Framework.Util.CommandUtil.ExecuteNonQuery(IDataSource dataSource, IDbCommand cmd)
>>
>> [NextException]
>> System.Data.OracleClient.OracleException
>> ORA-12704: character set mismatch
>>
>>  ErrorCode = -2146232008
>>  HelpLink  =
>>
>> SQLは
>>
>> -- !df:pmb!
>> -- !!string              DISPO_FLAG!!
>> insert into FAPAC_LOG_TBL (DISPO_FLAG, INPUT_TIME, FUNC_NO, TEHAI_NO) values ('0', /*pmb.INPUT_TIME*/'000000', '00',
>> '0000000000' )
>>
>> というものです。
>> ただ、試しに、このSQLをパラメータを全く使用しない
>> insert into FAPAC_LOG_TBL (DISPO_FLAG, INPUT_TIME, FUNC_NO, TEHAI_NO) values ('0', '000000', '00', '0000000000' )
>> このようにして実行した場合は問題なくINSERTできるのです。
>>
>> どのあたりに原因があるのか全くわからず、なにか少しでも情報があればと思い
>> メールさせていただきました。
>>
>> なお、Oracleとの接続はOracle用プロバイダクラスで行っております。
>>
>> よろしくお願いいたします。
>> _______________________________________________
>> 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
>


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