想向用户表插入记录,然后返回最新的自增id,但是提示错误 public int Add(Tb_UserManager model)
{
using (OracleDataAccessManagerHelper ODAMH = new OracleDataAccessManagerHelper(OracleConnectString))
{
string sSQL = @"var MaxID int;
exec :MaxID:=SEQ_ATABLE.NextVal; Insert into Tb_UserManager( ID, COMPANYID, USERNAME, USERPWD, SEX, TELPHONE, ROLEID, ISENABLE, ADDTIME, ADDDATE)
values(:MaxID,:COMPANYID,:USERNAME,:USERPWD,:SEX,:TELPHONE,:ROLEID,:ISENABLE,:ADDTIME,:ADDDATE); Select :MaxID as b from dual; ";
OracleParameter[] OP = new OracleParameter[9];
OP[0] = ODAMH.CreateOracleParameter("COMPANYID", OracleDbType.Int32, 4, model.CompanyID);
OP[1] = ODAMH.CreateOracleParameter("USERNAME", OracleDbType.NVarchar2, 20, model.UserName);
OP[2] = ODAMH.CreateOracleParameter("USERPWD", OracleDbType.Varchar2, 20, model.UserPwd);
OP[3] = ODAMH.CreateOracleParameter("SEX", OracleDbType.Int32, 4, model.Sex);
OP[4] = ODAMH.CreateOracleParameter("TELPHONE", OracleDbType.Varchar2, 20, model.TelPhone);
OP[5] = ODAMH.CreateOracleParameter("ROLEID", OracleDbType.Int32, 4, model.RoleID);
OP[6] = ODAMH.CreateOracleParameter("ISENABLE", OracleDbType.Int32, 4, model.IsEnable);
OP[7] = ODAMH.CreateOracleParameter("ADDTIME", OracleDbType.Date, 4, model.AddTime);
OP[8] = ODAMH.CreateOracleParameter("ADDDATE", OracleDbType.Date, 4, model.AddDate);
return Convert.ToInt32(ODAMH.ExecuteScalar(sSQL, OP));
}
}执行时候报错 ORA-00900: invalid SQL statement但是用SQL Developer 执行 下面脚本就没有问题var MaxID int;exec :MaxID:=SEQ_ATABLE.NextVal;insert into TB_USERMANAGER( ID)
values(:MaxID);Select :MaxID from dual;
脚本与上面C# 写的类似请教各位大神了。
{
using (OracleDataAccessManagerHelper ODAMH = new OracleDataAccessManagerHelper(OracleConnectString))
{
string sSQL = @"var MaxID int;
exec :MaxID:=SEQ_ATABLE.NextVal; Insert into Tb_UserManager( ID, COMPANYID, USERNAME, USERPWD, SEX, TELPHONE, ROLEID, ISENABLE, ADDTIME, ADDDATE)
values(:MaxID,:COMPANYID,:USERNAME,:USERPWD,:SEX,:TELPHONE,:ROLEID,:ISENABLE,:ADDTIME,:ADDDATE); Select :MaxID as b from dual; ";
OracleParameter[] OP = new OracleParameter[9];
OP[0] = ODAMH.CreateOracleParameter("COMPANYID", OracleDbType.Int32, 4, model.CompanyID);
OP[1] = ODAMH.CreateOracleParameter("USERNAME", OracleDbType.NVarchar2, 20, model.UserName);
OP[2] = ODAMH.CreateOracleParameter("USERPWD", OracleDbType.Varchar2, 20, model.UserPwd);
OP[3] = ODAMH.CreateOracleParameter("SEX", OracleDbType.Int32, 4, model.Sex);
OP[4] = ODAMH.CreateOracleParameter("TELPHONE", OracleDbType.Varchar2, 20, model.TelPhone);
OP[5] = ODAMH.CreateOracleParameter("ROLEID", OracleDbType.Int32, 4, model.RoleID);
OP[6] = ODAMH.CreateOracleParameter("ISENABLE", OracleDbType.Int32, 4, model.IsEnable);
OP[7] = ODAMH.CreateOracleParameter("ADDTIME", OracleDbType.Date, 4, model.AddTime);
OP[8] = ODAMH.CreateOracleParameter("ADDDATE", OracleDbType.Date, 4, model.AddDate);
return Convert.ToInt32(ODAMH.ExecuteScalar(sSQL, OP));
}
}执行时候报错 ORA-00900: invalid SQL statement但是用SQL Developer 执行 下面脚本就没有问题var MaxID int;exec :MaxID:=SEQ_ATABLE.NextVal;insert into TB_USERMANAGER( ID)
values(:MaxID);Select :MaxID from dual;
脚本与上面C# 写的类似请教各位大神了。
解决方案 »
- 100分求一个方法或函数拼接字符串(oracle 10g)
- 请大家推荐一本较有艺术感的sql书籍
- 9/1 PL/SQL: SQL Statement ignored9/30 PL/SQL: ORA-00911: 无效字符
- Oracle问题 ,我都搞了三天了,帮个忙吧
- oracle 游标
- 分组后排序
- 请教非归档模式下的备份方案!!!
- 如何写两个表之间的外联查询语句,求语法!!
- solaris下安装oracle 8的问题请帮忙解决(困扰了好几天了)!
- 请问大家的oracel8 数据库分几个磁盘?
- pl/sql导入dmp文件到一半出错了(命令窗口自动退出了)
- 为什么经常报 ORA-01034: ORACLE not available?
再用一次insert插入
begin
insert end;
(select SEQ_ATABLE.NextVal, :COMPANYID,:USERNAME,:USERPWD,:SEX,:TELPHONE,:ROLEID,:ISENABLE,:ADDTIME,:ADDDATE from dual);