ORA-00904:"E_MAIL":标识符无效

ORA-00904: "E_MAIL": invalid identifier

本文关键字:标识符 无效 MAIL ORA-00904      更新时间:2023-10-16

我正在使用MVC Architecture.i我正在尝试在表中更新以客户ID为输入的表中的记录。所有数据均在我的ViewCustomer.cpp类中作为输入,其方法是返回类型客户的对象,该对象通过controlCustomer.cpp(Controller)传递给ModelCustomer.pc中的函数。以下是我的modelcustomer.pc

的函数
void modelcustomer::dbUpdateCustomerDetail(customer &c)
{
id=c.getId();
ph=c.getId();
string memberFName=c.getFname();
string memberLName=c.getLname();
string memberStreet=c.getStreet();
string memberCity=c.getCity();
string memberState=c.getState();
string memberEmail=c.getEmail();
fn=new char[memberFName.length()+1];
ln=new char[memberLName.length()+1];
street=new char[memberStreet.length()+1];
city=new char[memberCity.length()+1];
state=new char[memberState.length()+1];
e_mail=new char[memberEmail.length()+1];
strcpy(fn,memberFName.c_str());
strcpy(ln,memberLName.c_str());
strcpy(street,memberStreet.c_str());
strcpy(city,memberCity.c_str());
strcpy(state,memberState.c_str());
strcpy(e_mail,memberEmail.c_str());
if(dbConnect())
{
EXEC SQL UPDATE CUSTOMER_1030082 SET CID=:id,FNAME=:fn,LNAME=:ln,PHONE=:ph,STREET=:street,STATE=:state,CITY=:city,EMAIL=e_mail;
if(sqlca.sqlcode<0)
{
cout<<"error in execution"<<sqlca.sqlcode<<sqlca.sqlerrm.sqlerrmc;
}
EXEC SQL COMMIT WORK RELEASE;
}
}

当我运行它时,显示了一个带有一些选项的菜单,我选择了更新选项,然后询问我的新详细信息,然后我将获得以下内容:

connected to Oracle!
error in execution-904ORA-00904: "E_MAIL": invalid identifier

e_mail不是参数,你忘记了 :

EXEC SQL … EMAIL=:e_mail;
                 ↑