首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

oracle数据库过程调用有关问题

2012-04-16 
oracle数据库过程调用问题olecon.Open()olecom.CommandType CommandType.StoredProcedureolecom.Command

oracle数据库过程调用问题
olecon.Open()
  olecom.CommandType = CommandType.StoredProcedure
  olecom.CommandText = "innerreg"
  Dim UserName As OracleParameter = New OracleParameter("UserName", OracleType.VarChar, 50)
  UserName.Direction = ParameterDirection.Input
  UserName.Value = TextName.Text
  olecom.Parameters.Add(UserName)
  Dim UserID As OracleParameter = New OracleParameter("UserID", OracleType.VarChar, 50)
  UserID.Direction = ParameterDirection.Input
  UserID.Value = TextID.Text
  olecom.Parameters.Add(UserID)
  Dim Password As OracleParameter = New OracleParameter("Password", OracleType.VarChar, 32)
  Password.Direction = ParameterDirection.Input
  Password.Value = TextPwd.Text
  olecom.Parameters.Add(Password)
  'Dim UserImg As OracleParameter = New OracleParameter("UserImg", OracleType.Blob)
  'UserName.Direction = ParameterDirection.Input
  'UserImg.Value = DBNull.Value
  'olecom.Parameters.Add(UserImg)
  Dim Address As OracleParameter = New OracleParameter("Address", OracleType.VarChar, 96)
  Address.Direction = ParameterDirection.Input
  Address.Value = TextAdd.Text
  olecom.Parameters.Add(Address)
  Dim BirthDay As OracleParameter = New OracleParameter("BirthDay", OracleType.VarChar, 32)
  BirthDay.Direction = ParameterDirection.Input
  BirthDay.Value = DropDownList1.SelectedValue & DropDownList2.SelectedValue & DropDownList3.SelectedValue
  olecom.Parameters.Add(BirthDay)
  Dim Sign As OracleParameter = New OracleParameter("Sign", OracleType.VarChar, 96)
  Sign.Direction = ParameterDirection.Input
  Sign.Value = TextSign.Text
  olecom.Parameters.Add(Sign)
  Dim IsSys As OracleParameter = New OracleParameter("IsSys", OracleType.Number)
  IsSys.Direction = ParameterDirection.Input
  If RadioButton1.Checked = True Then
  IsSys.Value = 1
  Else
  IsSys.Value = 0
  End If
  olecom.Parameters.Add(IsSys)
  Dim RoleGrpID As OracleParameter = New OracleParameter("RoleGrpID", OracleType.VarChar, 32)
  RoleGrpID.Direction = ParameterDirection.Input
  RoleGrpID.Value = ""
  olecom.Parameters.Add(RoleGrpID)
  Dim ShowRange As OracleParameter = New OracleParameter("ShowRange", OracleType.Number)
  ShowRange.Direction = ParameterDirection.Input
  ShowRange.Value = 0
  olecom.Parameters.Add(ShowRange)
  Dim Tel As OracleParameter = New OracleParameter("Tel", OracleType.VarChar, 32)
  Tel.Direction = ParameterDirection.Input
  Tel.Value = TextTel.Text
  olecom.Parameters.Add(Tel)
  Dim QQ As OracleParameter = New OracleParameter("QQ", OracleType.VarChar, 20)
  QQ.Direction = ParameterDirection.Input
  QQ.Value = TextQQ.Text
  olecom.Parameters.Add(QQ)
  Dim Email As OracleParameter = New OracleParameter("Email", OracleType.VarChar, 64)
  Email.Direction = ParameterDirection.Input
  Email.Value = TextMail.Text
  olecom.Parameters.Add(Email)
  Dim SecPwd As OracleParameter = New OracleParameter("SecPwd", OracleType.VarChar, 32)
  SecPwd.Direction = ParameterDirection.Input


  SecPwd.Value = TextSecPwd.Text
  olecom.Parameters.Add(SecPwd)
  Dim BindTel As OracleParameter = New OracleParameter("BindTel", OracleType.Number)
  BindTel.Direction = ParameterDirection.Input
  BindTel.Value = 0
  olecom.Parameters.Add(BindTel)
  Dim DepartID As OracleParameter = New OracleParameter("DepartID", OracleType.VarChar, 32)
  DepartID.Direction = ParameterDirection.Input
  DepartID.Value = ""
  olecom.Parameters.Add(DepartID)
  Dim Remark As OracleParameter = New OracleParameter("Remark", OracleType.VarChar, 50)
  Remark.Direction = ParameterDirection.Input
  Remark.Value = ""
  olecom.Parameters.Add(Remark)
  Dim mgrRemark As OracleParameter = New OracleParameter("mgrRemark", OracleType.VarChar, 50)
  mgrRemark.Direction = ParameterDirection.Input
  mgrRemark.Value = ""
  olecom.Parameters.Add(mgrRemark)
  Dim OperID As OracleParameter = New OracleParameter("OperID", OracleType.VarChar, 50)
  OperID.Direction = ParameterDirection.Input
  OperID.Value = TextID.Text
  olecom.Parameters.Add(OperID)
  Dim MgrName As OracleParameter = New OracleParameter("mgrname", OracleType.VarChar, 50)
  MgrName.Direction = ParameterDirection.Input
  MgrName.Value = CompanyName
  olecom.Parameters.Add(MgrName)
  Dim MgrType As OracleParameter = New OracleParameter("mgrtype", OracleType.VarChar, 30)
  MgrType.Direction = ParameterDirection.Input
  MgrType.Value = ""
  olecom.Parameters.Add(MgrType)

  Dim flag As Integer = olecom.ExecuteNonQuery()
  olecon.Close()

以上是asp.net调用数据库过程的代码

以下为数据库过程
create or replace procedure innerreg(UserName in varchar2,userid in varchar2,Password in VARCHAR2,Address in VARCHAR2,BirthDay in varchar2,Sign in VARCHAR2,IsSys in number,RoleGrpID in Varchar2,ShowRange in number,Tel in VARCHAR2,QQ in VARCHAR2,Email in VARCHAR2,SecPwd in VARCHAR2,BindTel in number,DepartID in Varchar2,Remark in varchar2,mgrRemark in varchar2,operator in varchar2,mgrname in varchar2,mgrtype in varchar2) as 
OperDate Date;
RegDate Date;
v_count number(4);
v_char varchar2(50);
V_id varchar2(50);
userid2 sys_user.userid%type;
mgrid2 varchar2(32);
birthday2 date;
begin
birthday2 := to_date(birthday,'yyyy-mm-dd');
select sysdate into operdate from dual;
if length(mgrname)>0 then
select mgrid 
into v_id
from ARC_MANAGER
where id = (select max(id) from arc_manager);
v_count:=5-length(to_char(to_number(v_id)+1));
loop
 exit when v_count = 0;
 v_count := v_count-1;
 v_char := v_char ||'0';
end loop;
mgrid2:=v_char || to_char(to_number(v_id)+1);
insert into arc_manager values(s_arc_manager.nextval,mgrid2,mgrname,mgrtype,userid,operdate,mgrRemark);
end if;
insert into Sys_User values

(S_Sys_User.nextval,UserName,userid,Password,null,Address,BirthDay2,Sign,OperDate,IsSys,RoleGrpID,ShowRange,Tel,QQ,Email,SecPwd,BindTel,DepartID,Remark,Operator,Ope

rDate);
commit;
end;
/

总会报错

ORA-06550: 第 1 行, 第 7 列:  
PLS-00306: 调用 'INSAAA' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:  
PL/SQL: Statement ignored

[解决办法]
插入数据列和写的列不一致

热点排行