Oracle11g 在Oracle中插入具有特定日期和时间格式的值
我尝试将值插入SURVEY.YSG表(用于插入查询) 错误报告: SQL错误:ORA-01843:不是有效月份 184300000-“不是有效月份” *原因:Oracle11g 在Oracle中插入具有特定日期和时间格式的值,oracle11g,oracle10g,Oracle11g,Oracle10g,我尝试将值插入SURVEY.YSG表(用于插入查询) 错误报告: SQL错误:ORA-01843:不是有效月份 184300000-“不是有效月份” *原因: *行动: 下面是在SURVEY.YSG表中创建的4列,其中包含日期和时间戳 YSG_MSN_DTM - TIMESTAMP(6) NPR_DT - DATE YSG_VRFCTN_DTM - TIMESTAMP(6) PLS_DTM - TIMESTAMP(6) 尝试使用TO\u DATE()函数: TO_DATE('2011-0
*行动: 下面是在
SURVEY.YSG
表中创建的4列,其中包含日期和时间戳
YSG_MSN_DTM - TIMESTAMP(6)
NPR_DT - DATE
YSG_VRFCTN_DTM - TIMESTAMP(6)
PLS_DTM - TIMESTAMP(6)
尝试使用TO\u DATE()
函数:
TO_DATE('2011-08-11 13:34:36','YYYY-MM-DD HH24:MI:SS')
得到如下输出:11-AUG-11 01.34.36.000000000 PM.
预期产出:
专栏:YSG\u MSN\u DTM
->2011-08-11 13:34:36.000000
对于另一列中的NPR\u DT
->12/31/8888
在Oracle中是否有其他方法可以实现这一点
非常感谢你的帮助
谢谢试试这个:
INSERT INTO
SURVEY.YSG ( YSG_ID,
YSG_MSN_DTM,
TAX_ID,
TAX_NM,
TYPE_CD,
USER_ID,
FRST_NM,
LAST_NM,
SHL_TXT,
NPR_DT,
PHONE_NBR,
FAX_NBR,
EMAIL_ADRS_TXT,
YSG_IMD,
MDFD_ID,
YSG_VRFCTN_CD,
YSG_VRFCTN_DTM,
LOG_KEY,
PLS_DTM,
LOAD_KEY,
UPDTD_LOAD_KEY )
VALUES
( '103',
TO_TIMESTAMP ( '2011-08-11 13:34:36.000000',
'YYYY-MM-DD HH24:MI:SS.FF' ),
'656002075',
'STG HEALTH SYSTEM',
'null',
'OPLINKS4',
'UNK',
'UNK',
'UNK',
TO_DATE ( '12/31/8888',
'MM/DD/YYYY' ),
'UNK',
'UNK',
'UNK',
'X',
'UNK',
'Y',
TO_TIMESTAMP ( '8888-12-31 00:00:00.000000',
'YYYY-MM-DD HH24:MI:SS.FF' ),
0,
TO_TIMESTAMP ( '2011-07-20 12:00:00.000000',
'YYYY-MM-DD HH24:MI:SS.FF' ),
0,
0 );
试试这个:
INSERT INTO
SURVEY.YSG ( YSG_ID,
YSG_MSN_DTM,
TAX_ID,
TAX_NM,
TYPE_CD,
USER_ID,
FRST_NM,
LAST_NM,
SHL_TXT,
NPR_DT,
PHONE_NBR,
FAX_NBR,
EMAIL_ADRS_TXT,
YSG_IMD,
MDFD_ID,
YSG_VRFCTN_CD,
YSG_VRFCTN_DTM,
LOG_KEY,
PLS_DTM,
LOAD_KEY,
UPDTD_LOAD_KEY )
VALUES
( '103',
TO_TIMESTAMP ( '2011-08-11 13:34:36.000000',
'YYYY-MM-DD HH24:MI:SS.FF' ),
'656002075',
'STG HEALTH SYSTEM',
'null',
'OPLINKS4',
'UNK',
'UNK',
'UNK',
TO_DATE ( '12/31/8888',
'MM/DD/YYYY' ),
'UNK',
'UNK',
'UNK',
'X',
'UNK',
'Y',
TO_TIMESTAMP ( '8888-12-31 00:00:00.000000',
'YYYY-MM-DD HH24:MI:SS.FF' ),
0,
TO_TIMESTAMP ( '2011-07-20 12:00:00.000000',
'YYYY-MM-DD HH24:MI:SS.FF' ),
0,
0 );
谢谢你的帮助!我也尝试过这个选项,输出:TIMESTAMP字段11-AUG-11 01.34.36.000000000 PM,日期字段31-DEC-88。我希望插入的类型与TERADATA DB中的类型完全相同。它正在从Teradata迁移到Oracle环境。请尝试更改会话的日期值。例如,ALTER SESSION SET NLS_DATE_FORMAT='yyyyy.MM.DD HH24:MI:SS';我使用了NLS_时间戳格式和NLS_日期格式来实现同样的效果。谢谢你的帮助:)谢谢你的帮助!我也尝试过这个选项,输出:TIMESTAMP字段11-AUG-11 01.34.36.000000000 PM,日期字段31-DEC-88。我希望插入的类型与TERADATA DB中的类型完全相同。它正在从Teradata迁移到Oracle环境。请尝试更改会话的日期值。例如,ALTER SESSION SET NLS_DATE_FORMAT='yyyyy.MM.DD HH24:MI:SS';我使用了NLS_TIMESTAMP_格式和NLS_DATE_格式来实现相同的功能。感谢您的帮助:)
DATE
和TIMESTAMP
列没有任何内在格式。当您显示它们时,您提供了一种格式-如果您不提供格式,则当前会话的NLS设置将用于提供默认格式。同意这一点。谢谢<代码>日期和时间戳列没有任何固有格式。当您显示它们时,您提供了一种格式-如果您不提供格式,则当前会话的NLS设置将用于提供默认格式。同意这一点。谢谢!