简体   繁体   English

无法成功将数据插入oracle db表

[英]Not able to successfully insert the data into the oracle db table

Please advise why i am getting error in below qracle insert qquery beow is the query请告知为什么我在下面的 qracle 中出现错误 insert qquery 下面是查询

insert into RT_INVOICE (VERSION, PART_ID_BROKER, EMAIL_ID, ATTACHMENT_ID, INITIAL_AMOUNT, CURRENT_AMOUNT, GROSS_AMOUNT, 
RECEIVED_DATE, COMMITTED_DATE, CREATEDDATE, UPDATEDDATE, SETTLEMENT_DATE, CURR_ISO_CODE, WQTY_CODE_CURRENT, 
BROKER_REFERENCE, CREATED_BY, ENTITY, PRODUCT, BROKER_INV_REF, ASSIGNEE, RECEIPT_DATE, TRADE_COUNT, GST_PCT, 
IS_GST_APPLIED, SOURCE_SYSTEM, DISCOUNT, MANUAL_INDICATOR, MANUAL_REFERENCE, PAYMENT_REFERENCE, QUERY_ASSIGNMENT,
Remarks, PARENT_INVO_ID, INVOICE_MONTH, ID) values (0, 40158334066, 0, 0, 22.0, 22.0, 22.0, '10 October 2016',
null, '2016-10-10 03:51:15', '2016-10-10 03:51:15', null, 'HKD', 'BrokerageManualReconciliationWFQueue',
'IRDOCT169694', 'bro_admin', 'PLC LONDON', 'IRD', 'wwwqqsd', '', '10 October 2016', 0, 0.0, 'false', 'GDS', 0.0, 
'true', null, null, null, null, null, '2016-10', 13093090)

The error that i am getting is我得到的错误是

Error report:
SQL Error: ORA-01843: not a valid month
01843. 00000 -  "not a valid month"
*Cause:    
*Action:

Just for the reference the structure of the table is仅供参考,表的结构是

Name                           Null     Type                                                                            
ID                             NOT NULL NUMBER(32)                      
VERSION                        NOT NULL NUMBER(20)                        
PART_ID_BROKER                 NOT NULL NUMBER(32)                        
INITIAL_AMOUNT                 NOT NULL NUMBER(25,5)                      
CURR_ISO_CODE                           VARCHAR2(20)                      
CURRENT_AMOUNT                 NOT NULL NUMBER(25,5)                      
SETT_ID                                 NUMBER(32)                        
RECEIVED_DATE                  NOT NULL DATE                              
COMMITTED_DATE                          DATE                              
SETTLEMENT_DATE                         DATE                              
CREATEDDATE                    NOT NULL TIMESTAMP(6)                      
UPDATEDDATE                             TIMESTAMP(6)                      
WQTY_CODE_CURRENT              NOT NULL VARCHAR2(100)                     
BROKER_REFERENCE                        VARCHAR2(100)                     
CREATED_BY                     NOT NULL VARCHAR2(30)                      
SOURCE_SYSTEM                  NOT NULL VARCHAR2(20)                      
INVOICE_MONTH                           VARCHAR2(30)                      
ENTITY                         NOT NULL VARCHAR2(50)                      
PRODUCT                        NOT NULL VARCHAR2(50)                      
BROKER_INV_REF                          VARCHAR2(50)                      
ASSIGNEE                                VARCHAR2(50)                      
RECEIPT_DATE                            TIMESTAMP(6)                      
TRADE_COUNT                             NUMBER                            
GST_PCT                                 NUMBER(25,5)                      
IS_GST_APPLIED                          CHAR(1)                           
PARENT_INVO_ID                          NUMBER(32)                        
DISCOUNT                                NUMBER(25,5)                      
MANUAL_INDICATOR                        CHAR(1)                           
MANUAL_REFERENCE                        VARCHAR2(100)                     
PAYMENT_REFERENCE                       VARCHAR2(100)                     
QUERY_ASSIGNMENT                        VARCHAR2(100)                     
REMARKS                                 VARCHAR2(500)                     
ATTACHMENT_ID                           NUMBER(32)                        
EMAIL_ID                                NUMBER(32)                        
GROSS_AMOUNT                   NOT NULL NUMBER(25,5)

To convert string to date try to use to_date function:要将字符串转换为日期,请尝试使用 to_date 函数:

insert into RT_INVOICE (VERSION, PART_ID_BROKER, EMAIL_ID, ATTACHMENT_ID, INITIAL_AMOUNT, CURRENT_AMOUNT, GROSS_AMOUNT, 
RECEIVED_DATE, COMMITTED_DATE, CREATEDDATE, UPDATEDDATE, SETTLEMENT_DATE, CURR_ISO_CODE, WQTY_CODE_CURRENT, 
BROKER_REFERENCE, CREATED_BY, ENTITY, PRODUCT, BROKER_INV_REF, ASSIGNEE, RECEIPT_DATE, TRADE_COUNT, GST_PCT, 
IS_GST_APPLIED, SOURCE_SYSTEM, DISCOUNT, MANUAL_INDICATOR, MANUAL_REFERENCE, PAYMENT_REFERENCE, QUERY_ASSIGNMENT,
Remarks, PARENT_INVO_ID, INVOICE_MONTH, ID) values (0, 40158334066, 0, 0, 22.0, 22.0, 22.0, to_date('10 October 2016', 'dd month yyyy', 'nls_date_language = american') ,
null, to_date('2016-10-10 03:51:15', 'yyyy-mm-dd hh24:mi:ss'), to_date('2016-10-10 03:51:15', 'yyyy-mm-dd hh24:mi:ss'), null, 'HKD', 'BrokerageManualReconciliationWFQueue',
'IRDOCT169694', 'bro_admin', 'PLC LONDON', 'IRD', 'wwwqqsd', '', to_date('10 October 2016', 'dd month yyyy', 'nls_date_language = american'), 0, 0.0, 'false', 'GDS', 0.0, 
'true', null, null, null, null, null, '2016-10', 13093090)

'10 October 2016' , '2016-10-10 03:51:15' , and '2016-10-10 03:51:15' are strings. '10 October 2016''2016-10-10 03:51:15''2016-10-10 03:51:15'是字符串。 As your columns are datetimes, as they should be, Oracle needs to convert your strings and tries this as best as it can given your current settings.由于您的列是日期时间,它们应该是日期时间,因此 Oracle 需要转换您的字符串,并在给定您当前设置的情况下尽可能地尝试此操作。 It's more or less a matter of luck whether Oracle understands your formats or not. Oracle 是否理解您的格式或多或少取决于运气。

Use ANSI datetime literals instead:改用 ANSI 日期时间文字:

date '2016-10-10', null, timestamp '2016-10-10 03:51:15', timestamp '2016-10-10 03:51:15'

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

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