初次接触Oracle,真是一头雾水呀示例存储过程如下(别人写的):CREATE OR REPLACE PROCEDURE TL_GAMEUSER."P_REGISTER_USER" (
v_cn IN varchar2,
v_password IN varchar2,
v_ip IN varchar2,
b_return OUT BINARY_INTEGER
)
AS
n_rowcount NUMBER;
errcode1 EXCEPTION;
BEGIN
SELECT COUNT (*) INTO n_rowcount FROM user_basic WHERE cn = v_cn;
IF n_rowcount > 0 THEN
RAISE errcode1;
END IF; INSERT INTO user_basic
(uin, cn, passwd_md5, regip, regdate)
VALUES (seq_user_basic_uin.NEXTVAL, v_cn,v_password, v_ip, SYSDATE);
b_return := 0;
EXCEPTION
WHEN errcode1
THEN
b_return := 1;
WHEN OTHERS
THEN
b_return := 9;
END;
我调用的时候,老是报错调用代码如下 public static int UserRegister(string usr, string pwd, string regip)
{
int rtn = 9;
OracleConnection conn = new OracleConnection(oracleconnectionstring);
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "Call TL_GAMEUSER.P_REGISTER_USER";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("v_cn", usr);
cmd.Parameters.AddWithValue("v_password", ComFun.ConvertStringToMd5(pwd));
cmd.Parameters.AddWithValue("v_ip", regip);
OracleParameter prtn = new OracleParameter("b_return", OracleType.Number);
prtn.Direction = ParameterDirection.Output;
cmd.Parameters.Add(prtn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
rtn = int.Parse(prtn.Value.ToString());
}
catch (Exception ex)
{
throw (ex);
}
finally
{
if (conn.State == ConnectionState.Open) conn.Close();
}
return rtn;
}
报错信息ORA-06550: 第 1 行, 第 12 列:
PLS-00103: 出现符号 "TL_GAMEUSER"在需要下列之一时:
:= . ( @ % ;
符号 ":=" 被替换为 "TL_GAMEUSER" 后继续。
v_cn IN varchar2,
v_password IN varchar2,
v_ip IN varchar2,
b_return OUT BINARY_INTEGER
)
AS
n_rowcount NUMBER;
errcode1 EXCEPTION;
BEGIN
SELECT COUNT (*) INTO n_rowcount FROM user_basic WHERE cn = v_cn;
IF n_rowcount > 0 THEN
RAISE errcode1;
END IF; INSERT INTO user_basic
(uin, cn, passwd_md5, regip, regdate)
VALUES (seq_user_basic_uin.NEXTVAL, v_cn,v_password, v_ip, SYSDATE);
b_return := 0;
EXCEPTION
WHEN errcode1
THEN
b_return := 1;
WHEN OTHERS
THEN
b_return := 9;
END;
我调用的时候,老是报错调用代码如下 public static int UserRegister(string usr, string pwd, string regip)
{
int rtn = 9;
OracleConnection conn = new OracleConnection(oracleconnectionstring);
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "Call TL_GAMEUSER.P_REGISTER_USER";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("v_cn", usr);
cmd.Parameters.AddWithValue("v_password", ComFun.ConvertStringToMd5(pwd));
cmd.Parameters.AddWithValue("v_ip", regip);
OracleParameter prtn = new OracleParameter("b_return", OracleType.Number);
prtn.Direction = ParameterDirection.Output;
cmd.Parameters.Add(prtn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
rtn = int.Parse(prtn.Value.ToString());
}
catch (Exception ex)
{
throw (ex);
}
finally
{
if (conn.State == ConnectionState.Open) conn.Close();
}
return rtn;
}
报错信息ORA-06550: 第 1 行, 第 12 列:
PLS-00103: 出现符号 "TL_GAMEUSER"在需要下列之一时:
:= . ( @ % ;
符号 ":=" 被替换为 "TL_GAMEUSER" 后继续。
PLS-00201: 必须声明标识符 'TL_GAMEUSER.P_REGISTER_USER'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored又报这个错了
create or replace procedure TL_GAMEUSER
cmd.CommandText = "TL_GAMEUSER";
Oracle9i SQL 参考手册