2012-10-15 4 views
0

asp.net에서 insert 문을 설정하려고합니다.ORA-01036 : 데이터 원본에 Insert 명령을 사용할 때

<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)입니다 :

InsertCommand="INSERT INTO DVD VALUES (DVD_SEQ.NEXTVAL, :DVD_TITLE, :RENTAL_COST, :RATING, :COVER_IMAGE)" 

삽입 매개 변수에 대한 코드는 다음과 같습니다

create table dvd 
(
dvd_id integer primary key not null, 
dvd_title char(100) not null, 
rental_cost number(9,2) not null, 
rating integer not null, 
cover_image char(100), 
foreign key(rating) references RATING(rating_id) 
); 
다음과 같이

내에 InsertCommand입니다

나는 변수 유형의 잠재적 인 충돌이라고 생각한다. 매개 변수 섹션은 내 테이블의 것과 다르지만 더 적합하지 않은 유형으로 스와핑을 시도했습니다!

+0

삽입 쿼리에서 열 이름을 지정하고 'DVd (yourolumns ....) values ​​(...)'에 삽입하십시오. – Habib

+0

InsertParameters에서 'GENRE_ID'는 어디에서 오는가요? –

+0

@Habib 필자는 이것이 필요하다고 생각하지 않는다. DB에서 동일한 구문 쿼리를 실행했는데 오류가 없다. – Linky

답변

0

ORA-01036: illegal variable name/number은 SQL 쿼리의 일부가 아닌 변수를 바인딩한다는 것을 의미합니다.

즉, InsertParameters (바운드 매개 변수)가 SQL의 일부가 아니므로이 부분을 제거해야하므로 GENRE_ID을 제거해야합니다.