ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'USP_GPS_M0IDFY'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored我在网上也搜索了原因说是权限原因。然后我用sys用户登录了,GRANT "CONNECT" TO username ;GRANT "RESOURCE" TO username ;GRANT "DBA" TO username 给我的用户都赋权了。可是还是提示这个错误
PLS-00201: 必须声明标识符 'USP_GPS_M0IDFY'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored我在网上也搜索了原因说是权限原因。然后我用sys用户登录了,GRANT "CONNECT" TO username ;GRANT "RESOURCE" TO username ;GRANT "DBA" TO username 给我的用户都赋权了。可是还是提示这个错误
是变量还是其它什么的 请说明 或者把存储过程贴出来看一下
USP_GPS_M0IDFY是存储过程名这是c#调用界面
public static string EditGPS(string As_CheCi, string A_Operator)
{
DbCommand comm = GenericDataAccess.CreateCommandProc_VT();
comm.CommandText = "USP_GPS_M0IDFY"; DbParameter param = comm.CreateParameter();
param.ParameterName = "As_CheCi";
param.Value = As_CheCi;
param.DbType = DbType.String;
comm.Parameters.Add(param);
param = comm.CreateParameter();
param.ParameterName = "A_Operator";
param.Value = A_Operator;
param.DbType = DbType.String;
comm.Parameters.Add(param); param = comm.CreateParameter();
param.ParameterName = "A_MSg";
param.Value = "成功";
param.Direction = ParameterDirection.Output;
param.Size = 200;
param.DbType = DbType.String;
comm.Parameters.Add(param); SQLHelper.GenericDataAccess.ExecuteNonQuery(comm).ToString();
return param.Value.ToString();
}
这是存储过程
create or replace procedure Usp_GPS_Moidfy( As_CheCi in varchar,A_Operator in varchar,A_MSg out varchar )as v_checkdate date; v_GPS varchar2(30); v_carrier varchar2(30); v_gpsnumber varchar2(30); V_TRUCK VARCHAR(30);begin v_checkdate:=sysdate; --GPS的绑定记录 SELECT Gps_sn,Carrier_Code,truck_no INTO v_GPS,v_carrier,V_TRUCK from Gps_gpsBind WHERE checi=As_CheCi AND ROWNUM=1; insert into Gps_gpsBind_Changed(CheCi,Truck_No, Carrier_Code, Carrier_Name,Gps_SN, VDR_No, VIN,AIC,Changed_Date,Changed_By,Describle,Create_By,driver_id,driver_name,Driver_Tel) select As_CheCi,TRUCK_no,Carrier_Code,Carrier_Name,Gps_SN,vdr_no, vin,aic,v_checkdate,A_Operator,'发运绑定',A_Operator,driver_id,driver_name,driver_tel from Gps_gpsBind where checi=As_CheCi; --跟新GPS设备情况 update Gps_GpsItem set state='运输中' where Serial_Number=v_GPS; select Asset_Number into v_gpsnumber from Gps_GpsItem where Serial_Number=v_GPS; --跟新GPS变化记录 insert into Gps_ChangedList (Asset_Number,Serial_Number,Changed_Date,Changed_Name,Save_Dept, Describe, Create_By) values(v_gpsnumber,v_GPS,v_checkdate,'发运',v_carrier,'',A_Operator); UPDATE it_transcar Set lock_flag = 'Y' Where truck_no =V_TRUCK; commit; a_msg:='OK'; exception when others then a_msg := substr(sqlerrm,1,200); rollback; END Usp_GPS_Moidfy;
具体还要看程序和数据库的连接是否有问题,配置文件是否有问题。
具体的c#代码调用存储过程是否有问题。
在PLSQL中执行是没有问题的,而且我的那些连接在执行查询,增加,修改oracle没有问题