CREATE OR REPLACE Procedure p_insert_tb_vulgatecar
(
plateid in Nvarchar2,
platetype in Nvarchar2,
crossingname in Nvarchar2,
crossingtime in Nvarchar2,
wayname in Nvarchar2,
aspectname in Nvarchar2,
processstate in Nvarchar2,
platecolor in Nvarchar2,
speed in Nvarchar2,
illegaltype in Nvarchar2,
checktime in Nvarchar2,
punishpoint in Nvarchar2,
punishcash in Nvarchar2,
blackstate in Number,
filepath in Nvarchar2
)
as
BEGIN
insert into sysadmin.tb_vulgatecar values (VuIdentity.nextval,plateid,platetype,crossingname,to_date(crossingtime,'YYYY-MM-DD HH24:MI:SS'),wayname,aspectname,processstate,platecolor,speed,illegaltype,to_date(checktime,'YYYY-MM-DD HH24:MI:SS'),punishpoint,punishcash,blackstate,filepath);
commit;
End;
我在oracle创建了一个添加数据的存储过程,在VS里调用public static void RunProcedure(string ProName, OracleParameter[] op)
{
OracleCommand cmd = new OracleCommand(ProName,Conn);
cmd.CommandText = ProName;
cmd.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter param in op)
{
cmd.Parameters.Add(param);
}
cmd.ExecuteNonQuery();
}
public static void AddProcedure(string plateid, string platetype, string crossingname, string crossingtime, string wayname, string aspectname, string processstate, string platecolor, string speed, string illegaltype, string checktime, string punishpoint, string punishcash, string blackstate, string filepath)
{
OracleParameter[] op = new OracleParameter[]{
new OracleParameter("plateid",OracleType.NVarChar),
new OracleParameter("platetype",OracleType.NVarChar),
new OracleParameter("crossingname",OracleType.NVarChar),
new OracleParameter("crossingtime",OracleType.NVarChar),
new OracleParameter("wayname",OracleType.NVarChar),
new OracleParameter("aspectname",OracleType.NVarChar),
new OracleParameter("processstate",OracleType.NVarChar),
new OracleParameter("platecolor",OracleType.NVarChar),
new OracleParameter("speed",OracleType.NVarChar),
new OracleParameter("illegaltype",OracleType.NVarChar),
new OracleParameter("checktime",OracleType.NVarChar),
new OracleParameter("punishpoint",OracleType.NVarChar),
new OracleParameter("punishcash",OracleType.NVarChar),
new OracleParameter("blackstate",OracleType.Number),
new OracleParameter("filepath",OracleType.NVarChar)
};
op[0].Value = plateid;
op[1].Value = platetype;
op[2].Value = crossingname;
op[3].Value = crossingtime;
op[4].Value = wayname;
op[5].Value = aspectname;
op[6].Value = processstate;
op[7].Value = platecolor;
op[8].Value = speed;
op[9].Value = illegaltype;
op[10].Value = checktime;
op[11].Value = punishpoint;
op[12].Value = punishcash;
op[13].Value = blackstate;
op[14].Value = filepath;
op[0].Direction = ParameterDirection.Input;
op[1].Direction = ParameterDirection.Input;
op[2].Direction = ParameterDirection.Input;
op[3].Direction = ParameterDirection.Input;
op[4].Direction = ParameterDirection.Input;
op[5].Direction = ParameterDirection.Input;
op[6].Direction = ParameterDirection.Input;
op[7].Direction = ParameterDirection.Input;
op[8].Direction = ParameterDirection.Input;
op[9].Direction = ParameterDirection.Input;
op[10].Direction = ParameterDirection.Input;
op[11].Direction = ParameterDirection.Input;
op[12].Direction = ParameterDirection.Input;
op[13].Direction = ParameterDirection.Input;
op[14].Direction = ParameterDirection.Input;
DBHelper.RunProcedure("p_insert_tb_vulgatecar", op);
}
界面调用:
string plateid = TextBox1.Text;
string platetype = TextBox2.Text;
string crossingname = TextBox3.Text;
string crossingtime = TextBox4.Text;
string wayname = TextBox5.Text;
string aspectname = TextBox6.Text;
string processstate = TextBox7.Text;
string platecolor = TextBox8.Text;
string speed = TextBox9.Text;
string illegaltype = TextBox10.Text;
string checktime = TextBox11.Text;
string punishpoint = TextBox12.Text;
string punishcash = TextBox13.Text;
string blackstate = TextBox14.Text;
string filepath = TextBox15.Text;
TestBLL.AddProcedure(plateid, platetype, crossingname, crossingtime, wayname, aspectname, processstate, platecolor, speed, illegaltype, checktime, punishpoint, punishcash, blackstate, filepath);运行的时候会报错,错误是“必须说明标识符 'P_INSERT_TB_VULGATECAR'”,我在oracle里调用的时候没问题,可以正常添加数据,界面调用就会报错,请问应该如何修改呢?谢谢各位了
(
plateid in Nvarchar2,
platetype in Nvarchar2,
crossingname in Nvarchar2,
crossingtime in Nvarchar2,
wayname in Nvarchar2,
aspectname in Nvarchar2,
processstate in Nvarchar2,
platecolor in Nvarchar2,
speed in Nvarchar2,
illegaltype in Nvarchar2,
checktime in Nvarchar2,
punishpoint in Nvarchar2,
punishcash in Nvarchar2,
blackstate in Number,
filepath in Nvarchar2
)
as
BEGIN
insert into sysadmin.tb_vulgatecar values (VuIdentity.nextval,plateid,platetype,crossingname,to_date(crossingtime,'YYYY-MM-DD HH24:MI:SS'),wayname,aspectname,processstate,platecolor,speed,illegaltype,to_date(checktime,'YYYY-MM-DD HH24:MI:SS'),punishpoint,punishcash,blackstate,filepath);
commit;
End;
我在oracle创建了一个添加数据的存储过程,在VS里调用public static void RunProcedure(string ProName, OracleParameter[] op)
{
OracleCommand cmd = new OracleCommand(ProName,Conn);
cmd.CommandText = ProName;
cmd.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter param in op)
{
cmd.Parameters.Add(param);
}
cmd.ExecuteNonQuery();
}
public static void AddProcedure(string plateid, string platetype, string crossingname, string crossingtime, string wayname, string aspectname, string processstate, string platecolor, string speed, string illegaltype, string checktime, string punishpoint, string punishcash, string blackstate, string filepath)
{
OracleParameter[] op = new OracleParameter[]{
new OracleParameter("plateid",OracleType.NVarChar),
new OracleParameter("platetype",OracleType.NVarChar),
new OracleParameter("crossingname",OracleType.NVarChar),
new OracleParameter("crossingtime",OracleType.NVarChar),
new OracleParameter("wayname",OracleType.NVarChar),
new OracleParameter("aspectname",OracleType.NVarChar),
new OracleParameter("processstate",OracleType.NVarChar),
new OracleParameter("platecolor",OracleType.NVarChar),
new OracleParameter("speed",OracleType.NVarChar),
new OracleParameter("illegaltype",OracleType.NVarChar),
new OracleParameter("checktime",OracleType.NVarChar),
new OracleParameter("punishpoint",OracleType.NVarChar),
new OracleParameter("punishcash",OracleType.NVarChar),
new OracleParameter("blackstate",OracleType.Number),
new OracleParameter("filepath",OracleType.NVarChar)
};
op[0].Value = plateid;
op[1].Value = platetype;
op[2].Value = crossingname;
op[3].Value = crossingtime;
op[4].Value = wayname;
op[5].Value = aspectname;
op[6].Value = processstate;
op[7].Value = platecolor;
op[8].Value = speed;
op[9].Value = illegaltype;
op[10].Value = checktime;
op[11].Value = punishpoint;
op[12].Value = punishcash;
op[13].Value = blackstate;
op[14].Value = filepath;
op[0].Direction = ParameterDirection.Input;
op[1].Direction = ParameterDirection.Input;
op[2].Direction = ParameterDirection.Input;
op[3].Direction = ParameterDirection.Input;
op[4].Direction = ParameterDirection.Input;
op[5].Direction = ParameterDirection.Input;
op[6].Direction = ParameterDirection.Input;
op[7].Direction = ParameterDirection.Input;
op[8].Direction = ParameterDirection.Input;
op[9].Direction = ParameterDirection.Input;
op[10].Direction = ParameterDirection.Input;
op[11].Direction = ParameterDirection.Input;
op[12].Direction = ParameterDirection.Input;
op[13].Direction = ParameterDirection.Input;
op[14].Direction = ParameterDirection.Input;
DBHelper.RunProcedure("p_insert_tb_vulgatecar", op);
}
界面调用:
string plateid = TextBox1.Text;
string platetype = TextBox2.Text;
string crossingname = TextBox3.Text;
string crossingtime = TextBox4.Text;
string wayname = TextBox5.Text;
string aspectname = TextBox6.Text;
string processstate = TextBox7.Text;
string platecolor = TextBox8.Text;
string speed = TextBox9.Text;
string illegaltype = TextBox10.Text;
string checktime = TextBox11.Text;
string punishpoint = TextBox12.Text;
string punishcash = TextBox13.Text;
string blackstate = TextBox14.Text;
string filepath = TextBox15.Text;
TestBLL.AddProcedure(plateid, platetype, crossingname, crossingtime, wayname, aspectname, processstate, platecolor, speed, illegaltype, checktime, punishpoint, punishcash, blackstate, filepath);运行的时候会报错,错误是“必须说明标识符 'P_INSERT_TB_VULGATECAR'”,我在oracle里调用的时候没问题,可以正常添加数据,界面调用就会报错,请问应该如何修改呢?谢谢各位了
解决方案 »
- 创建表空间时用了nologing选项,为什么还可以recover?
- 存储过程求解,有个变量怎么处理
- Net Configuration Assistant 无法打开,是怎么回事/
- DirectX8 与Oracle数据查询出现的错误
- !!!郁闷了,又是一个连接QRACLE的问题!!!
- oracle 存储过程 从A表查查询数据到B表 怎么写 高手帮忙
- 100元人民币,求助!任务马上就到期了!着急呀!
- oracle 中fetch first怎么用
- 瞧这SQL语句如何写?
- 为什么刚装的客户端无法与服务器连接!!!!!
- oracle 10g oem的图形化管理界面 下载安装问题
- ORALCE DATA GUARD 关于最大保护的问题。
如果oracle报错,会是ora-xxxx 形式
PLS-00201: 必须说明标识符 'P_INSERT_TB_VULGATECAR'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
但是直接在oracle里"exec p_insert_tb_vulgatecar('京A00282','社会车辆','中关村','2010-04-08 12:35:23','车道一','001','正常','黑色','89KM','','','','',0,'')"这样调用是可以插入数据的
最可能是这个问题,同意二楼的看法!