ORA-00904: "E_MAIL": 标识符无效
ORA-00904: "E_MAIL": invalid identifier
我正在使用 MVC architecture.I 正在尝试更新 table 中的记录,将客户 ID 作为输入。
所有数据都作为我的 viewcustomer.cpp class 中的输入,其方法返回一个客户类型的对象,该对象通过 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;
}
}
当我 运行 时,它显示了一个带有一些选项的菜单,我 select 更新选项然后它要求我提供新的详细信息,然后我得到以下输出:
connected to Oracle!
error in execution-904ORA-00904: "E_MAIL": invalid identifier
e_mail
不是参数,你忘记了:
:
EXEC SQL … EMAIL=:e_mail;
↑
我正在使用 MVC architecture.I 正在尝试更新 table 中的记录,将客户 ID 作为输入。 所有数据都作为我的 viewcustomer.cpp class 中的输入,其方法返回一个客户类型的对象,该对象通过 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;
}
}
当我 运行 时,它显示了一个带有一些选项的菜单,我 select 更新选项然后它要求我提供新的详细信息,然后我得到以下输出:
connected to Oracle!
error in execution-904ORA-00904: "E_MAIL": invalid identifier
e_mail
不是参数,你忘记了:
:
EXEC SQL … EMAIL=:e_mail;
↑