항상 감사한 마음으로 리플보구 있습니다...모든 분들께 감사합니다
또다시 허접한 질문을 드려서 죄송합니다...
Sqlplus에서는 그냥 insert했더니 잘 됐습니다...
근데 프로그램상에서는 오류가 떠서...ㅠ_ㅠ
begin
with QryUpdate do
begin
Close;
Sql.Clear;
Sql.Add(' INSERT INTO 테이블 ');
Sql.Add(' (appno,regionno,areano,comgubun,telno,regno,basic0006,starttime ,endtime ,parkingtime,origincharge,discntcharge,charge) VALUES ');
Sql.Add(' (appno+1,:regionno,:areano,:comgubun,:telno,:regno,:basic0006, ');
Sql.Add(' to_date(:starttime,''yyyy-mm-dd hh24:mi''),to_date(:endtime,''yyyy-mm-dd hh24:mi''),:parkingtime,:origincharge,:discntcharge,to_number,:charge) ');
ParamByName('regionno').AsString := Query5.FieldByName('regioncode').AsString;
ParamByName('basic0006').AsString := Query4.FieldByName('code1').AsString;
ParamByName('areano').AsString := Edit3.Text;
ParamByName('telno').AsString := Edit9.Text;
ParamByName('regno').AsString := Edit2.Text;
ParamByName('starttime').AsString := Edit9.Text;
ParamByName('endtime').AsString := Edit2.Text;
ParamByName('parkingtime').AsString := Edit4.Text;
ParamByName('origincharge').AsString := Edit10.Text;
ParamByName('discntcharge').AsString := Edit11.Text;
ParamByName('charge').AsString := Edit5.Text;
try
ExecSql;
ShowMessage('등록되었습니다');
Query2.close;
Query2.Open;
except
ShowMessage('값을 넣어주세요');
Exit;
end;
end;
end;
실행시 ORA-00984: 열을 사용할 수 없습니다....라고 나옵니다...
컬럼 형식은...
appno number
regionno varchar
areano varchar
comgubun varchar
telno varchar
regno varchar
basic0006 varchar
starttime date
endtime date
parkingtime number
origincharge number
discntcharge number
charge number
이렇게 구성되어있는데여...왜 INSERT시 자꾸 에러가 뜨는지요...
고수님들의 조언 부탁드립니다
일단
VALUES ');
Sql.Add(' (appno+1,
라는 부분이 있네요. 이것은 쿼리의 규칙에 어긋납니다. appno라는 것이 특정값을 갖는 변수라면 몰라도 그냥 테이블의 필드에 무작정 +1을 한 값이 무엇인지 명확하지가 않기 때문입니다.
그리도 아래부분에서 하나 더 틀린 부분이 있는데..
:discntcharge,to_number,:charge) ');
여기서 ,to_number, :charge로 표현한다면 전체 필드는 13개인데 넣는 값이 14개가 되어서 오류입니다.
to_number(:charge) 가 맞습니다.
charge 뿐 아니라 parkingtime, origincharge,discntcharge 등이 모두 숫자타입이네요. 이것들의 변수들이 스트링이라면 모두 to_number를 붙여줘야 합니다.