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
[解决办法]
插入数据列和写的列不一致