C# 太多的';ALTA#u Social';从c调用过程时匹配此调用#
这个问题正在慢慢地折磨着我,我想问题可能在日期和时间格式上,但不确定 例外情况:C# 太多的';ALTA#u Social';从c调用过程时匹配此调用#,c#,oracle,stored-procedures,C#,Oracle,Stored Procedures,这个问题正在慢慢地折磨着我,我想问题可能在日期和时间格式上,但不确定 例外情况: ORA-06550: line 1, column 7: PLS-00307: too many declarations of 'ALTA_SOCIO' match this call ORA-06550: line 1, column 7: PL/SQL: Statement ignored PROCEDURE alta_socio( p_nickname IN VARCHAR2, p
ORA-06550: line 1, column 7:
PLS-00307: too many declarations of 'ALTA_SOCIO' match this call
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
PROCEDURE alta_socio(
p_nickname IN VARCHAR2,
p_nombre IN VARCHAR2,
p_apellido IN VARCHAR2,
p_cod_tipo_documento IN VARCHAR2,
p_numero_documento IN NUMBER,
p_fecha_nacimiento IN DATE,
p_sexo IN VARCHAR2,
p_cod_categoria IN VARCHAR2,
p_numero_socio OUT NUMBER,
p_codigo_error OUT NUMBER);
PROCEDURE alta_socio(
p_nickname IN VARCHAR2,
p_nombre IN VARCHAR2,
p_apellido IN VARCHAR2,
p_cod_tipo_documento IN VARCHAR2,
p_numero_documento IN NUMBER,
p_fecha_nacimiento IN DATE,
p_sexo IN VARCHAR2,
p_cod_categoria IN VARCHAR2,
p_mail IN VARCHAR2 DEFAULT NULL,
p_telefono_particular IN VARCHAR2 DEFAULT NULL,
p_telefono_alternativo IN VARCHAR2 DEFAULT NULL,
p_cod_ocupacion IN VARCHAR2 DEFAULT NULL,
p_cod_profesion IN VARCHAR2 DEFAULT NULL,
p_cod_estado_civil IN VARCHAR2 DEFAULT NULL,
p_fecha_casamiento IN DATE DEFAULT NULL,
p_nombre_apellido_conyuge IN VARCHAR2 DEFAULT NULL,
p_cod_pais IN VARCHAR2 DEFAULT NULL,
p_cod_provincia IN VARCHAR2 DEFAULT NULL,
p_cod_localidad IN VARCHAR2 DEFAULT NULL,
p_calle IN VARCHAR2 DEFAULT NULL,
p_numero IN VARCHAR2 DEFAULT NULL,
p_piso IN VARCHAR2 DEFAULT NULL,
p_departamento IN VARCHAR2 DEFAULT NULL,
p_cp IN VARCHAR2 DEFAULT NULL,
p_cp_nuevo_formato IN VARCHAR2 DEFAULT NULL,
p_numero_socio OUT NUMBER,
p_codigo_error OUT NUMBER);
程序:
ORA-06550: line 1, column 7:
PLS-00307: too many declarations of 'ALTA_SOCIO' match this call
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
PROCEDURE alta_socio(
p_nickname IN VARCHAR2,
p_nombre IN VARCHAR2,
p_apellido IN VARCHAR2,
p_cod_tipo_documento IN VARCHAR2,
p_numero_documento IN NUMBER,
p_fecha_nacimiento IN DATE,
p_sexo IN VARCHAR2,
p_cod_categoria IN VARCHAR2,
p_numero_socio OUT NUMBER,
p_codigo_error OUT NUMBER);
PROCEDURE alta_socio(
p_nickname IN VARCHAR2,
p_nombre IN VARCHAR2,
p_apellido IN VARCHAR2,
p_cod_tipo_documento IN VARCHAR2,
p_numero_documento IN NUMBER,
p_fecha_nacimiento IN DATE,
p_sexo IN VARCHAR2,
p_cod_categoria IN VARCHAR2,
p_mail IN VARCHAR2 DEFAULT NULL,
p_telefono_particular IN VARCHAR2 DEFAULT NULL,
p_telefono_alternativo IN VARCHAR2 DEFAULT NULL,
p_cod_ocupacion IN VARCHAR2 DEFAULT NULL,
p_cod_profesion IN VARCHAR2 DEFAULT NULL,
p_cod_estado_civil IN VARCHAR2 DEFAULT NULL,
p_fecha_casamiento IN DATE DEFAULT NULL,
p_nombre_apellido_conyuge IN VARCHAR2 DEFAULT NULL,
p_cod_pais IN VARCHAR2 DEFAULT NULL,
p_cod_provincia IN VARCHAR2 DEFAULT NULL,
p_cod_localidad IN VARCHAR2 DEFAULT NULL,
p_calle IN VARCHAR2 DEFAULT NULL,
p_numero IN VARCHAR2 DEFAULT NULL,
p_piso IN VARCHAR2 DEFAULT NULL,
p_departamento IN VARCHAR2 DEFAULT NULL,
p_cp IN VARCHAR2 DEFAULT NULL,
p_cp_nuevo_formato IN VARCHAR2 DEFAULT NULL,
p_numero_socio OUT NUMBER,
p_codigo_error OUT NUMBER);
c#代码
int retornoNroSocio = (int)retorno.ObjetoGenerico;
//Agrego todos los parametros al comando
OracleParameter parameterNickname = new OracleParameter("p_nickname", OracleType.VarChar, 32767);
parameterNickname.Direction = ParameterDirection.Input;
parameterNickname.Value = nickname;
ora_cmd.Parameters.Add(parameterNickname);
OracleParameter parameterNombre = new OracleParameter("p_nombre", OracleType.VarChar, 32767);
parameterNombre.Direction = ParameterDirection.Input;
parameterNombre.Value = nombre;
ora_cmd.Parameters.Add(parameterNombre);
OracleParameter parameterApellido = new OracleParameter("p_apellido", OracleType.VarChar, 32767);
parameterApellido.Direction = ParameterDirection.Input;
parameterApellido.Value = apellido;
ora_cmd.Parameters.Add(parameterApellido);
OracleParameter parameterTipoDocumento = new OracleParameter("p_cod_tipo_documento", OracleType.VarChar, 32767);
parameterTipoDocumento.Direction = ParameterDirection.Input;
parameterTipoDocumento.Value = tipoDocumento;
ora_cmd.Parameters.Add(parameterTipoDocumento);
OracleParameter parameterNroDocumento = new OracleParameter("p_numero_documento", OracleType.Number);
parameterNroDocumento.Direction = ParameterDirection.Input;
parameterNroDocumento.Value = numeroDocumento;
ora_cmd.Parameters.Add(parameterNroDocumento);
string fecha1 = DateTime.Today.ToShortDateString();
DateTime fecha2 = DateTime.Today;
string fecha3 = fecha2.ToString("dd-MM-yyyy");
DateTime fecha4 = new DateTime(2012, 5, 7, 12, 23, 22, 0);
DateTime fecha5 = DateTime.ParseExact(fecha3, "dd-MM-yyyy", null);
OracleParameter parameterFechaNacimiento = new OracleParameter("p_fecha_nacimiento", OracleType.DateTime);
parameterFechaNacimiento.Direction = ParameterDirection.Input;
parameterFechaNacimiento.Value = fecha5;
//parameterFechaNacimiento.Value = fecha2.ToString("dd/MM/yyyy");
ora_cmd.Parameters.Add(parameterFechaNacimiento);
OracleParameter parameterSexo = new OracleParameter("p_sexo", OracleType.VarChar, 32767);
parameterSexo.Direction = ParameterDirection.Input;
parameterSexo.Value = sexo.ToString();
ora_cmd.Parameters.Add(parameterSexo);
OracleParameter parameterCodCategoria = new OracleParameter("p_cod_categoria", OracleType.VarChar, 32767);
parameterCodCategoria.Direction = ParameterDirection.Input;
parameterCodCategoria.Value = codCategoria;
ora_cmd.Parameters.Add(parameterCodCategoria);
//ora_cmd.Parameters.Add("p_numero_socio", OracleType.Number).Direction = ParameterDirection.Output;
// ora_cmd.Parameters.Add("p_codigo_error", OracleType.Number).Direction = ParameterDirection.Output;
OracleParameter resultNumeroSocio = new OracleParameter("p_numero_socio", OracleType.Number);
resultNumeroSocio.Direction = ParameterDirection.Output;
ora_cmd.Parameters.Add(resultNumeroSocio);
OracleParameter resultCodigoError = new OracleParameter("p_codigo_error", OracleType.Number);
resultCodigoError.Direction = ParameterDirection.Output;
ora_cmd.Parameters.Add(resultCodigoError);
//Ejecuto el comando
ora_cmd.ExecuteNonQuery();
我尝试了几种日期格式但没有成功,我不知道会是什么。
非常感谢您提供的帮助,如果您需要更多我可以添加的内容。我认为这不是日期格式-Oracle无法区分您要调用哪个
alta_
过程,因为前8个参数是相同的,其余是可选的
但是,传递日期的正确方法只是传递日期值,而不是将其转换为字符串
OracleParameter parameterFechaNacimiento = new OracleParameter("p_fecha_nacimiento", OracleType.DateTime);
parameterFechaNacimiento.Direction = ParameterDirection.Input;
parameterFechaNacimiento.Value = fecha5; // use the native DateTime type
ora_cmd.Parameters.Add(parameterFechaNacimiento);