初次接触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" 后继续。

解决方案 »

  1.   

    cmd.CommandText = "TL_GAMEUSER.P_REGISTER_USER";
      

  2.   

    不成啊ORA-06550: 第 1 行, 第 7 列: 
    PLS-00201: 必须声明标识符 'TL_GAMEUSER.P_REGISTER_USER'
    ORA-06550: 第 1 行, 第 7 列: 
    PL/SQL: Statement ignored又报这个错了
      

  3.   

    CREATE OR REPLACE PROCEDURE TL_GAMEUSER."P_REGISTER_USER" ( 存储过程的名称可能写错了,你换个存储过程的名称,不要带点的试一下)换成下面的代码试一下
    create or replace procedure TL_GAMEUSER
    cmd.CommandText = "TL_GAMEUSER";
      

  4.   

    找了个参考手册,准备学习或在使用Oracle的朋友可以去下一个了,6.87M
    Oracle9i SQL 参考手册