[Seasar-user:20351] Re: [DBFlute]ORA-00911: 文字が無効です。

西山はじめ [E-MAIL ADDRESS DELETED]
2010年 11月 22日 (月) 14:17:53 JST


西山です。

素朴な疑問ですが、外出しSQLで書いたInsert文はそもそも通るのでしょうか?
全角空白が入っていたり、最後にセミコロンがあったりすると、ORA-00911が起きたことがあります。

バインド変数の後ろには、ダミーの値を入れて2way-SQLとしておいたほうがテストがしやすくなります。
SQLが通った上で相談されたほうが問題解決が早くなると思います。

insert into USR130TBX(USER_ID, ORG_NM1) values
(/*pmb.userId*/'111',/*pmb.orgNm1*/'hoge')

あと、Oracleもバージョンによって差異があったりしますので、その辺りの情報もあった方が良いと思います。

--
西山はじめ



2010年11月22日13:15 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
>> 項目と値の数を一致させましたが、やはり同エラーになってしまします。
>> よろしくおねがいいたします。
>
> それならば、これはまず ORA-00911 がどんなときに
> 発生するエラーなのかを調べてみるのが先決かと思います。
>
> 2010/11/22 櫻井 周里 <[E-MAIL ADDRESS DELETED]>:
>> 久保さん
>>
>> ありがとうございます。
>>>また、外だしSQLの insert に関しては、
>>>insert into USR130TBX(USER_ID) values (/*pmb.userId*/,/*pmb.orgNm1*/
>>>で、項目と値の数が一致していないからだと思います。
>> 項目と値の数を一致させましたが、やはり同エラーになってしまします。
>> よろしくおねがいいたします。
>>
>> [エラー内容]
>> org.seasar.dbflute.exception.SQLFailureException: Look! Read the message
>> below.
>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> The SQL failed to execute!
>>
>> [Advice]
>> Please confirm the SQLException message.
>>
>> [SQLState]
>> 42000
>>
>> [ErrorCode]
>> 911
>>
>> [SQLException]
>> org.seasar.framework.exception.SSQLException
>> [ESSR0072]SQLで例外(SQL=[##Usr130tbxBhv##
>> --!Usr130tbxPmb!
>> --!!String userId!!
>> --!!String orgNm1!!
>>
>> insert into USR130TBX(USER_ID) values (?
>> )], Message=[911], ErrorCode=42000, SQLState={3})が発生しました
>>
>> [NextException]
>> java.sql.SQLException
>> ORA-00911: 文字が無効です。
>>
>> [Behavior]
>> UsrAs002RegisterAction.execute():34 ->
>> RegisterServiceImpl.registerExecute():69 ->
>> Usr130tbxBhv.outsideSql().execute()...
>>
>> [OutsideSql]
>> jp/co/bs/wiss/dbflute/exbhv/Usr130tbxBhv_insert.sql
>>
>> [Statement]
>> org.seasar.extension.jdbc.impl.PreparedStatementWrapper
>>
>> [Display SQL]
>> ##Usr130tbxBhv##
>> --!Usr130tbxPmb!
>> --!!String userId!!
>> --!!String orgNm1!!
>>
>> insert into USR130TBX(USER_ID) values ('0987654321'
>> )
>> * * * * * * * * * */
>>
>> [SQL文]
>> ##Usr130tbxBhv##
>> --!Usr130tbxPmb!
>> --!!String userId!!
>> --!!String orgNm1!!
>>
>> insert into USR130TBX(USER_ID) values (/*pmb.userId*/
>> )
>>
>> -----Original Message-----
>> From: [E-MAIL ADDRESS DELETED]
>> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of kubo
>> Sent: Monday, November 22, 2010 12:41 PM
>> To: [E-MAIL ADDRESS DELETED]
>> Subject: [Seasar-user:20348] Re:[DBFlute]ORA-00911: 文字が無効です。
>>
>> 久保です。
>>
>> 櫻井さん、こんにちは
>> DBFluteのご利用ありがとうございます。
>>
>> 取り急ぎですが、(今書きました)こちらのページをご覧下さい。
>>
>> // 現場フィット - PKのないinsert | DBFlute
>> http://dbflute.sandbox.seasar.org/ja/manual/function/genbafit/deprecatedfit/
>> nonprimarykeyinsert/index.html
>>
>> PKの役割を持つUniqueカラムがあるのであれば、
>> AdditionalPrimaryKey でいいかと思います。
>>
>> また、外だしSQLの insert に関しては、
>> insert into USR130TBX(USER_ID) values (/*pmb.userId*/,/*pmb.orgNm1*/
>> で、項目と値の数が一致していないからだと思います。
>>
>> 2010/11/22 櫻井 周里 <[E-MAIL ADDRESS DELETED]>:
>>> ご質問
>>>
>>>
>>>
>>> はじめまして。
>>>
>>> 櫻井と申します。
>>>
>>>
>>>
>>> 現在、DBFluteを使用して、開発を行っております。
>>>
>>> (seaser2も使っております)
>>>
>>>
>>>
>>> DBの構造をPrimaryKeyを持たず、Uniqueでテーブルを作成しております。
>>>
>>> そのため、conditionBeanでのinsertができないため、(PrimaryKeyがないと
>> insert(entity)構文はできないようです)
>>>
>>> 外だしSQLを使用して、insertを行おうとしております。
>>>
>>> しかし、下記エラーになってしまい、insertできません。
>>>
>>>
>>>
>>> 大変申し訳ございませんが、ご教示いただければ幸いです。
>>>
>>>
>>>
>>> 櫻井
>>>
>>>
>>>
>>> 【外だしSQLファイル内容】
>>>
>>> ##Usr130tbxBhv##
>>>
>>> --!Usr130tbxPmb!
>>>
>>> --!!String userId!!
>>>
>>> --!!String orgNm1!!
>>>
>>>
>>>
>>> insert into USR130TBX(USER_ID) values (/*pmb.userId*/,/*pmb.orgNm1*/
>>>
>>> )
>>>
>>>
>>>
>>> 【エラー内容】
>>>
>>> org.seasar.dbflute.exception.SQLFailureException: Look! Read the message
>>> below.
>>>
>>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>
>>> The SQL failed to execute!
>>>
>>>
>>>
>>> [Advice]
>>>
>>> Please confirm the SQLException message.
>>>
>>>
>>>
>>> [SQLState]
>>>
>>> 42000
>>>
>>>
>>>
>>> [ErrorCode]
>>>
>>> 911
>>>
>>>
>>>
>>> [SQLException]
>>>
>>> org.seasar.framework.exception.SSQLException
>>>
>>> [ESSR0072]SQLで例外(SQL=[##Usr130tbxBhv##
>>>
>>> --!Usr130tbxPmb!
>>>
>>> --!!String userId!!
>>>
>>> --!!String orgNm1!!
>>>
>>>
>>>
>>> insert into USR130TBX(USER_ID) values (?,?
>>>
>>> )], Message=[911], ErrorCode=42000, SQLState={3})が発生しました
>>>
>>>
>>>
>>> [NextException]
>>>
>>> java.sql.SQLException
>>>
>>> ORA-00911: 文字が無効です。
>>>
>>>
>>>
>>> [Behavior]
>>>
>>> UsrAs002RegisterAction.execute():34 ->
>>> RegisterServiceImpl.registerExecute():69 ->
>>> Usr130tbxBhv.outsideSql().execute()...
>>>
>>>
>>>
>>> [OutsideSql]
>>>
>>> jp/co/bs/wiss/dbflute/exbhv/Usr130tbxBhv_insert.sql
>>>
>>>
>>>
>>> [Statement]
>>>
>>> org.seasar.extension.jdbc.impl.PreparedStatementWrapper
>>>
>>>
>>>
>>> [Display SQL]
>>>
>>> ##Usr130tbxBhv##
>>>
>>> --!Usr130tbxPmb!
>>>
>>> --!!String userId!!
>>>
>>> --!!String orgNm1!!
>>>
>>>
>>>
>>> insert into USR130TBX(USER_ID) values ('64576','test'
>>>
>>> )
>>>
>>> * * * * * * * * */
>>>
>>>
>>>
>>> よろしくお願いいたします。
>>>
>>>
>>>
>>> 櫻井
>>>
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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