0

asp.net で挿入ステートメントを設定しようとしています。

私の二重行insertCommandは次のとおりです:

InsertCommand="INSERT INTO DVD(DVD_ID, DVD_TITLE, RENTAL_COST, RATING, COVER_IMAGE) VALUES (DVD_SEQ.NEXTVAL, :DVD_TITLE, :RENTAL_COST, :RATING, :COVER_IMAGE);
        INSERT INTO DVD_GENRE(DVD_ID, GENRE_ID) VALUES (DVD_SEQ.CURRVAL, :GENRE_ID)" 

挿入パラメーターのコードは次のとおりです。

<InsertParameters>
    <asp:ControlParameter ControlID="titleBox" DefaultValue="TITLEDEFAULT" 
        Name="DVD_TITLE" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="rentalBox" DefaultValue="99" 
        Name="RENTAL_COST" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="ratingList" DefaultValue="25" Name="RATING" 
        PropertyName="SelectedValue" Type="Int32" />
    <asp:Parameter Name="COVER_IMAGE" Type="String" DefaultValue="0.jpg" />
    <asp:ControlParameter ControlID="genreList" Name="GENRE_ID" 
        PropertyName="SelectedValue" />
</InsertParameters>

そして、挿入されている私のOracleDBテーブル(DVD)は次のとおりです。

create table dvd_genre
(
dvd_id integer not null,
genre_id integer not null,
primary key (dvd_id, genre_id),
foreign key(dvd_id) references DVD(dvd_id),
foreign key(genre_id) references GENRE(genre_id)
);

これの原因についての私の唯一の推測は、「;」です。2 つの挿入ステートメントを分割する文字。はい、おそらくトリガーを作成する必要があることは理解していますが、これも機能することを読みました。「;」を削除すると 文字 クエリが正しく終了していないというエラーが表示されます。どんな助けでも大歓迎です!!

4

1 に答える 1

0

1) 「ORA-00911」は「無効な文字」を意味します

2) はい、「;」良い候補です。Q: 1 つの ASP コマンドで 2 つの SQL 挿入を実行できますか? 知らない ;)

3) 提案: 1 つのSQL ステートメントに分割し、問題が解決するかどうかを確認します。

4) その場合、次のオプションがあります。

a) ASP コードと同じ場所で 2 つの SQL ステートメントを発行する (これは私が行うことですが、それがプログラムのオプションであるかどうかはわかりません)。

b)トリガーを使用します(間違いなく私がすることではありません)

c) PL/SQL ストアド プロシージャを作成し、生の SQL の代わりに ASP から呼び出します (おそらくすべての中で最良の選択です)。

私見では..

于 2012-10-15T05:47:51.667 に答える