简体   繁体   English

Ora 在插入表时出现无效月份错误

[英]Ora not a valid month error while inserting into table

I want to insert records in oracle table with my below stored procedure我想用下面的存储过程在 oracle 表中插入记录

Below is the procedure下面是程序

Also below is the description of the table..下面还有表格的描述..

ID                            NOT NULL NUMBER         
CMP                                    NVARCHAR2(100) 
SAP_ID                                 NVARCHAR2(100) 
ID_OD_COUNTCHANGE                      NVARCHAR2(100) 
ID_OD_CHANGEDDATE                      DATE           
RRH_COUNTCHANGE                        NVARCHAR2(100) 
RRH_CHANGEDDATE                        DATE           
TENANCY_COUNTCHANGE                    NVARCHAR2(100) 
TENANCY_CHANGEDDATE                    DATE           
RFS_DATE                               DATE           
RFE1_DATE                              DATE           
INFRA_PROVIDER                         NVARCHAR2(100) 
IP_COLO_SITEID                         NVARCHAR2(100) 
SITE_NAME                              NVARCHAR2(500) 
R4GSTATE                               NVARCHAR2(100) 
MW_INSTALLED                           NVARCHAR2(100) 
DG_NONDG                               NVARCHAR2(100) 
EB_NONEB                               NVARCHAR2(100) 
TOWER_TYPE                             NVARCHAR2(100) 
VENDOR_CODE                            NVARCHAR2(100) 
RFCDATE                                DATE           
POLITICAL_STATE_NAME                   NVARCHAR2(100) 
POLITICAL_STATE_CODE                   NVARCHAR2(100) 
SITE_DROP_DATE                         DATE           
CITY_NAME                              NVARCHAR2(100) 
NEID                                   NVARCHAR2(100) 
FACILITY_LATITUDE                      NVARCHAR2(100) 
FACILITY_LONGITUDE                     NVARCHAR2(100) 
RJ_STRUCTURE_TYPE                      NVARCHAR2(100) 
RJ_JC_NAME                             NVARCHAR2(100) 
RJ_JC_CODE                             NVARCHAR2(100) 
COMPANY_CODE                           NVARCHAR2(100) 
BLCHAIN_RESP_MSG_MASTER                NVARCHAR2(100) 
BLCHAIN_RESP_CODE_MASTER               NVARCHAR2(100) 
SITE_ADDRESS                           CLOB           
BLCHAIN_RESP_MSG_INCREMENTAL           VARCHAR2(100)  
BLCHAIN_RESP_CODE_INCREMENTAL          VARCHAR2(100)  
CREATED_BY                             NVARCHAR2(100) 
CREATED_DATE                           DATE           
SEL_CHANGED_VAL                        NVARCHAR2(100) 

Please suggest what is wrong here.请提出这里有什么问题。

UPDATE更新

PROCEDURE INSERT_IPCOLO_DATA
(
     P_SAPID IN NVARCHAR2,
     P_R4GSTATE IN NVARCHAR2,
     P_POLITICAL_STATE_NAME IN NVARCHAR2,
     P_POLITICAL_STATE_CODE IN NVARCHAR2,
     P_CMP IN NVARCHAR2,
     P_SITE_NAME IN NVARCHAR2,
     P_RFC_DATE IN DATE,     
     P_RFE1_DATE IN DATE,
     P_SITE_DROP_DATE IN DATE,
     P_INFRA_PROVIDER IN NVARCHAR2,
     P_IPCOLO_SITEID IN NVARCHAR2,
     P_IPSAP_VENDORCODE IN NVARCHAR2,
     P_MW_INSTALLED IN NVARCHAR2,
     P_DG_AVAILABLE IN NVARCHAR2,     
     P_EB_AVAILABLE IN NVARCHAR2,
     P_TOWER_TYPE IN NVARCHAR2,
     P_ID_OD_COUNTCHANGE IN NVARCHAR2,
     P_ID_OD_CHANGEDDATE IN DATE,
     P_RRH_COUNTCHANGE IN NVARCHAR2,
     P_RRH_CHANGEDDATE IN DATE,
     P_TENANCY_COUNTCHANGE IN NVARCHAR2,
     P_TENANCY_CHANGEDDATE IN DATE,     
     P_CITY_NAME IN NVARCHAR2,
     P_NEID IN NVARCHAR2,
     P_FAC_LATITUDE IN NVARCHAR2,
     P_FAC_LONGITUDE IN NVARCHAR2,
     P_RJ_STRUC_TYPE IN NVARCHAR2,     
     P_RJ_JC_NAME IN NVARCHAR2,
     P_RJ_JC_CODE IN NVARCHAR2,
     P_COMPANY_CODE IN NVARCHAR2,     
     P_CREATED_BY IN NVARCHAR2,
     P_CHANEDVALUE IN NVARCHAR2,
     P_RFS_DATE IN DATE,
     TBL_INSERT OUT NUMBER
)

AS 

vr_RRH_COUNTCHANGE nvarchar2(100);
vr_RRH_CHANGEDDATE date;
vr_TENANCY_COUNTCHANGE nvarchar2(100);
vr_TENANCY_CHANGEDDATE date;
vr_ID_OD_COUNTCHANGE nvarchar2(100);
vr_ID_OD_CHANGEDDATE date;


BEGIN

    IF P_CHANEDVALUE = 'IDOD'

    THEN
      BEGIN

          vr_ID_OD_COUNTCHANGE:= P_ID_OD_COUNTCHANGE;
           vr_ID_OD_CHANGEDDATE:=P_ID_OD_CHANGEDDATE;

          /* P_RRH_COUNTCHANGE :='';
           P_RRH_CHANGEDDATE :='';
           P_TENANCY_COUNTCHANGE :='';
           P_TENANCY_CHANGEDDATE :='';      */
           vr_TENANCY_COUNTCHANGE:='';
           vr_TENANCY_CHANGEDDATE:= null;
           vr_RRH_COUNTCHANGE:='';
           vr_RRH_CHANGEDDATE:=null;

      END;
      END IF;

      IF P_CHANEDVALUE = 'RRH'

    THEN
      BEGIN

        /*   P_ID_OD_COUNTCHANGE :='';
           P_ID_OD_CHANGEDDATE :='';
           P_TENANCY_COUNTCHANGE :='';
           P_TENANCY_CHANGEDDATE :=''; */   

           vr_RRH_COUNTCHANGE:=P_RRH_COUNTCHANGE;
           vr_RRH_CHANGEDDATE:=P_RRH_CHANGEDDATE;

           vr_TENANCY_COUNTCHANGE:='';
           vr_TENANCY_CHANGEDDATE:= null;
           vr_ID_OD_COUNTCHANGE:='';
           vr_ID_OD_CHANGEDDATE:=null;

      END;
      END IF;

      IF P_CHANEDVALUE = 'Tenancy'

    THEN
      BEGIN

        /*   P_ID_OD_COUNTCHANGE :='';
           P_ID_OD_CHANGEDDATE :='';
           P_RRH_COUNTCHANGE :='';
           P_RRH_CHANGEDDATE :='';  */

           vr_TENANCY_COUNTCHANGE:=P_TENANCY_COUNTCHANGE;
           vr_TENANCY_CHANGEDDATE:= P_TENANCY_CHANGEDDATE;

           vr_RRH_COUNTCHANGE:='';
           vr_RRH_CHANGEDDATE:=null;
           vr_ID_OD_COUNTCHANGE:='';
           vr_ID_OD_CHANGEDDATE:=null;

      END;
      END IF;

      INSERT INTO TBL_IPCOLO_BILLING_MST
                                      (
                                         SAP_ID,
                                         R4GSTATE,
                                         POLITICAL_STATE_NAME,
                                         POLITICAL_STATE_CODE,
                                         CMP,
                                         SITE_NAME,
                                         RFCDATE,
                                         RFE1_DATE,
                                         SITE_DROP_DATE,
                                         INFRA_PROVIDER,
                                         IP_COLO_SITEID,
                                         VENDOR_CODE,
                                         MW_INSTALLED,
                                         DG_NONDG,     
                                         EB_NONEB,
                                         TOWER_TYPE,
                                         ID_OD_COUNTCHANGE,
                                         ID_OD_CHANGEDDATE,
                                         RRH_COUNTCHANGE,
                                         RRH_CHANGEDDATE,
                                         TENANCY_COUNTCHANGE,
                                         TENANCY_CHANGEDDATE,     
                                         CITY_NAME,
                                         NEID,
                                         FACILITY_LATITUDE,
                                         FACILITY_LONGITUDE,
                                         RJ_STRUCTURE_TYPE,     
                                         RJ_JC_NAME,
                                         RJ_JC_CODE,
                                         COMPANY_CODE,     
                                         CREATED_BY,
                                         CREATED_DATE,
                                         SEL_CHANGED_VAL,
                                         RFS_DATE                                         
                                      )
    VALUES                           (

                                        P_SAPID,
                                       P_R4GSTATE,
                                       P_POLITICAL_STATE_NAME,
                                       P_POLITICAL_STATE_CODE,
                                       P_CMP,
                                       P_SITE_NAME,
                                       P_RFC_DATE,     
                                       P_RFE1_DATE,
                                       P_SITE_DROP_DATE,
                                       P_INFRA_PROVIDER,
                                       P_IPCOLO_SITEID,
                                       P_IPSAP_VENDORCODE,
                                       P_MW_INSTALLED,
                                       P_DG_AVAILABLE,     
                                       P_EB_AVAILABLE,
                                       P_TOWER_TYPE,
                                       vr_ID_OD_COUNTCHANGE,
                                       vr_ID_OD_CHANGEDDATE,
                                       vr_RRH_COUNTCHANGE,
                                       vr_RRH_CHANGEDDATE,
                                       vr_TENANCY_COUNTCHANGE,
                                       vr_TENANCY_CHANGEDDATE,     
                                       P_CITY_NAME,
                                       P_NEID,
                                       P_FAC_LATITUDE,
                                       P_FAC_LONGITUDE,
                                       P_RJ_STRUC_TYPE,     
                                       P_RJ_JC_NAME,
                                       P_RJ_JC_CODE,
                                       P_COMPANY_CODE,     
                                       P_CREATED_BY,
                                       SYSDATE,
                                       P_CHANEDVALUE,
                                     P_RFS_DATE                                
                                    );

TBL_INSERT := 0;



END INSERT_IPCOLO_DATA;

CODE代码

 public static string INSERT_IPCOLO_DATA(IPColoFields IPColoFields) { OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString_IPCOLO"].ConnectionString); string intRetId = ""; try { OracleCommand cmd = new OracleCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = ConfigurationManager.AppSettings["PackageName"].ToString() + ".INSERT_IPCOLO_DATA"; cmd.Connection = conn; cmd.Parameters.Add(new OracleParameter { ParameterName = "P_SAPID", Value = IPColoFields.SAP_ID, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_R4GSTATE", Value = IPColoFields.R4GSTATE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_POLITICAL_STATE_NAME", Value = IPColoFields.POLITICAL_STATE_NAME, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_POLITICAL_STATE_CODE", Value = IPColoFields.POLITICAL_STATE_CODE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_CMP", Value = IPColoFields.CMP, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_SITE_NAME", Value = IPColoFields.SITE_NAME, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RFC_DATE", Value = IPColoFields.RFC_DATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RFE1_DATE", Value = IPColoFields.RFE1_DATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_SITE_DROP_DATE", Value = IPColoFields.SITE_DROP_DATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_INFRA_PROVIDER", Value = IPColoFields.INFRA_PROVIDER, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_IPCOLO_SITEID", Value = IPColoFields.IPCOLO_SITEID, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_IPSAP_VENDORCODE", Value = IPColoFields.IPSAP_VENDORCODE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_MW_INSTALLED", Value = IPColoFields.MW_INSTALLED, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_DG_AVAILABLE", Value = IPColoFields.DG_AVAILABLE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_EB_AVAILABLE", Value = IPColoFields.EB_AVAILABLE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_TOWER_TYPE", Value = IPColoFields.TOWER_TYPE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_ID_OD_COUNTCHANGE", Value = IPColoFields.ID_OD_COUNTCHANGE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_ID_OD_CHANGEDDATE", Value = IPColoFields.ID_OD_CHANGEDDATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RRH_COUNTCHANGE", Value = IPColoFields.RRH_COUNTCHANGE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RRH_CHANGEDDATE", Value = IPColoFields.ID_OD_CHANGEDDATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_TENANCY_COUNTCHANGE", Value = IPColoFields.TENANCY_COUNTCHANGE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_TENANCY_CHANGEDDATE", Value = IPColoFields.TENANCY_CHANGEDDATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_CITY_NAME", Value = IPColoFields.CITY_NAME, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_NEID", Value = IPColoFields.NEID, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_FAC_LATITUDE", Value = IPColoFields.FAC_LATITUDE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_FAC_LONGITUDE", Value = IPColoFields.FAC_LONGITUDE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RJ_STRUC_TYPE", Value = IPColoFields.RJ_STRUC_TYPE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RJ_JC_NAME", Value = IPColoFields.RJ_JC_NAME, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RJ_JC_CODE", Value = IPColoFields.RJ_JC_CODE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_COMPANY_CODE", Value = IPColoFields.COMPANY_CODE, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_CREATED_BY", Value = IPColoFields.CREATED_BY, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_CHANEDVALUE", Value = IPColoFields.CHANGED_FIELDS, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "P_RFS_DATE", Value = IPColoFields.RFS_DATE, OracleDbType = OracleDbType.Date, Direction = ParameterDirection.Input }); cmd.Parameters.Add(new OracleParameter { ParameterName = "TBL_INSERT", OracleDbType = OracleDbType.Decimal, Direction = ParameterDirection.Output }); if (conn.State.= ConnectionState.Open) conn;Open(). cmd;ExecuteNonQuery(). intRetId = cmd.Parameters["TBL_INSERT"].Value;ToString(); } catch (Exception) { throw. } finally { if (conn.State == ConnectionState.Open) conn;Close(); } return intRetId; }

P_RFS_DATE is a date. P_RFS_DATE是一个日期。 RFS_DATE is a date. RFS_DATE是一个日期。 So why are you treating P_RFS_DATE like a string that must be converted to a date here?那么,为什么P_RFS_DATE必须在此处转换为日期的字符串呢?

to_date(P_RFS_DATE,'-dd-mm-yyyy')

It must be just应该只是

P_RFS_DATE

instead.反而。 The same is true for the other four times you are applying TO_DATE in your procedure.在您的过程中应用TO_DATE的其他四次也是如此。

UPDATE: There are other places where you treat the dates like strings.更新:还有其他地方可以将日期视为字符串。 Here for instance:例如这里:

P_RRH_CHANGEDDATE :='';

Do you want null?你想要 null 吗?

P_RRH_CHANGEDDATE := null;

As you are not seeing the full error message including the line number, you can select it:由于您没有看到包括行号在内的完整错误消息,您可以 select 它:

select * from all_errors;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM