Oracle Package Wizard
Posted: Mon 22 Mar 2010 20:15
The Oracle Package Wizard version 5.20.33 does not support overloaded procedures. Is there a way to work this around?
Another question is when does the Oracle Package Wizard decide when a variable should be nullable or not. Using the script below, the first variable is not nullable and the sencond one is
PROCEDURE DELETE_NOMINACION_GAS_TEMPORAL(pSESSION_ID VARCHAR2,pID_CLIENTE_GAS PLS_INTEGER) is
begin
DELETE DEGNET.NOMINACION_GAS
WHERE SESSION_ID = pSESSION_ID
AND ID_REFERENCIA_SECUNDARIA IN (SELECT ID_REFERENCIA_SECUNDARIA
FROM DESPACHO.REFERENCIA_SECUNDARIA
WHERE ID_CLIENTE_GAS = pID_CLIENTE_GAS);
end;
here is the generated code
public void DeleteNominacionGasTemporal(string psessionId, System.Nullable pidClienteGas, System.Nullable pdiaOperativo) {
OracleParameterCollection parameters;
parameters = this.Parameters;
parameters.Clear();
OracleParameter parameter;
parameter = new OracleParameter("PSESSION_ID", Devart.Data.Oracle.OracleDbType.VarChar);
parameter.Direction = System.Data.ParameterDirection.Input;
parameter.Value = psessionId;
parameters.Add(parameter);
parameter = new OracleParameter("PID_CLIENTE_GAS", Devart.Data.Oracle.OracleDbType.Integer);
parameter.Direction = System.Data.ParameterDirection.Input;
if (pidClienteGas.HasValue) {
parameter.Value = pidClienteGas;
}
else {
parameter.Value = System.DBNull.Value;
}
parameter.Direction = System.Data.ParameterDirection.Input;
parameters.Add(parameter);
parameter = new OracleParameter("PDIA_OPERATIVO", Devart.Data.Oracle.OracleDbType.Date);
parameter.Direction = System.Data.ParameterDirection.Input;
if (pdiaOperativo.HasValue) {
parameter.Value = pdiaOperativo;
}
else {
parameter.Value = System.DBNull.Value;
}
parameter.Direction = System.Data.ParameterDirection.Input;
parameters.Add(parameter);
ExecuteProcedure("DELETE_NOMINACION_GAS_TEMPORAL", parameters);
}
Another question is when does the Oracle Package Wizard decide when a variable should be nullable or not. Using the script below, the first variable is not nullable and the sencond one is
PROCEDURE DELETE_NOMINACION_GAS_TEMPORAL(pSESSION_ID VARCHAR2,pID_CLIENTE_GAS PLS_INTEGER) is
begin
DELETE DEGNET.NOMINACION_GAS
WHERE SESSION_ID = pSESSION_ID
AND ID_REFERENCIA_SECUNDARIA IN (SELECT ID_REFERENCIA_SECUNDARIA
FROM DESPACHO.REFERENCIA_SECUNDARIA
WHERE ID_CLIENTE_GAS = pID_CLIENTE_GAS);
end;
here is the generated code
public void DeleteNominacionGasTemporal(string psessionId, System.Nullable pidClienteGas, System.Nullable pdiaOperativo) {
OracleParameterCollection parameters;
parameters = this.Parameters;
parameters.Clear();
OracleParameter parameter;
parameter = new OracleParameter("PSESSION_ID", Devart.Data.Oracle.OracleDbType.VarChar);
parameter.Direction = System.Data.ParameterDirection.Input;
parameter.Value = psessionId;
parameters.Add(parameter);
parameter = new OracleParameter("PID_CLIENTE_GAS", Devart.Data.Oracle.OracleDbType.Integer);
parameter.Direction = System.Data.ParameterDirection.Input;
if (pidClienteGas.HasValue) {
parameter.Value = pidClienteGas;
}
else {
parameter.Value = System.DBNull.Value;
}
parameter.Direction = System.Data.ParameterDirection.Input;
parameters.Add(parameter);
parameter = new OracleParameter("PDIA_OPERATIVO", Devart.Data.Oracle.OracleDbType.Date);
parameter.Direction = System.Data.ParameterDirection.Input;
if (pdiaOperativo.HasValue) {
parameter.Value = pdiaOperativo;
}
else {
parameter.Value = System.DBNull.Value;
}
parameter.Direction = System.Data.ParameterDirection.Input;
parameters.Add(parameter);
ExecuteProcedure("DELETE_NOMINACION_GAS_TEMPORAL", parameters);
}