这样写会出现:ORA-01036: illegal variable name/number

string sql = "INSERT INTO USERINFO VALUES(@USERNAME,@PASSWORD,@NAME,@BRITHDAY,@SEX,@EMAIL,@QQ,@TEL)";
OracleCommand cmd = new OracleCommand(sql,conn);
cmd.Parameters.Add("@USERNAME",OracleType.NVarChar).Value=UserName;
cmd.Parameters.Add("@PASSWORD", OracleType.NVarChar).Value = Password;
cmd.Parameters.Add("@NAME", OracleType.NVarChar).Value = Name;
cmd.Parameters.Add("@BRITHDAY", OracleType.DateTime).Value =Convert.ToDateTime(Brithday);
cmd.Parameters.Add("@SEX", OracleType.NVarChar).Value = sex;
cmd.Parameters.Add("@EMAIL", OracleType.NVarChar).Value = Email;
cmd.Parameters.Add("@QQ", OracleType.NVarChar).Value = qq;
cmd.Parameters.Add("@TEL", OracleType.NVarChar).Value = tel;
这样写会出现:ORA-01036: illegal variable name/number
我以前一直用的是sql server这样写没出错过。

开满天机
浏览 453回答 3
3回答

桃花长相依

首先,sql中的NVarChar类型 在oracle中是NVarChar2其次,oracle中的参数前面是不加@号的,但是要在定义一个参数时就申明清楚是输入型参数(IN),还是输出型参数(OUT)建议你看看oracle的基础语法,完全按SQL语句来写ORACLE语句肯定是行不通的

DIEA

数据类型出错,应该是你需要插入数字类型的字段出错。

当年话下

这个 很有可能是你定义的变量的数据(@USERNAME,@PASSWORD,@NAME,@BRITHDAY,@SEX,@EMAIL,@QQ,@TEL)")格式不正确,请仔细检查
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Oracle
MySQL