Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Insert语句错误,ORA-00984:此处不允许列_Sql_Oracle - Fatal编程技术网

Sql Insert语句错误,ORA-00984:此处不允许列

Sql Insert语句错误,ORA-00984:此处不允许列,sql,oracle,Sql,Oracle,任何我得到的帮助的家伙错误列不允许在这里的日期时间 INSERT INTO MEMBERS_CONTRIBUTIONS ( CONTRIBUTION_TYPE, FROM_DATE, TO_DATE, ADDED_PERIOD_IN_MONTHS, MEMBER_AMOUNT, THE_CURRENCY, MATURITY_DATE ) VALUES ( 4, convert(datetime, '6/1/2016 12:0

任何我得到的帮助的家伙错误列不允许在这里的日期时间

INSERT INTO MEMBERS_CONTRIBUTIONS (
    CONTRIBUTION_TYPE,
    FROM_DATE,
    TO_DATE,
    ADDED_PERIOD_IN_MONTHS,
    MEMBER_AMOUNT,
    THE_CURRENCY,
    MATURITY_DATE
) VALUES (
    4,
    convert(datetime, '6/1/2016 12:00:00 AM', 5),
    convert(datetime, '6/1/2016 12:00:00 AM', 5),
    0,
    2500,
    'OMR',
    convert(datetime, '6/30/2016 12:00:00 AM', 5)
);
您试图在Oracle中使用-从一个字符集转换为另一个字符集,但不执行您想要的操作

相反,您可以使用日期文字:

INSERT INTO MEMBERS_CONTRIBUTIONS (
    CONTRIBUTION_TYPE,
    FROM_DATE,
    TO_DATE,
    ADDED_PERIOD_IN_MONTHS,
    MEMBER_AMOUNT,
    THE_CURRENCY,
    MATURITY_DATE
) VALUES (
    4,
    DATE '2016-06-01',
    DATE '2016-06-01',
    0,
    2500,
    'OMR',
    DATE '2016-06-30'
);
在Oracle中,所有的
DATE
类型都有一个日期和时间组件-日期文字语法只会将时间组件设置为
00:00:00
(或在12小时时钟中设置为
12:00:00 AM

或者,如果要指定时间组件,则可以使用时间戳文字(如果存储时间的列是
DATE
类型,Oracle将隐式转换为该类型):

或者,您可以使用
to_date()
函数将字符串文字显式转换为日期:

INSERT INTO MEMBERS_CONTRIBUTIONS (
    CONTRIBUTION_TYPE,
    FROM_DATE,
    TO_DATE,
    ADDED_PERIOD_IN_MONTHS,
    MEMBER_AMOUNT,
    THE_CURRENCY,
    MATURITY_DATE
) VALUES (
    4,
    TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
    TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
    0,
    2500,
    'OMR',
    TO_DATE( '6/30/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' )
);

表达式
convert(datetime,'6/1/2016 12:00:00 AM',5)
调用名为
datetime
的列。但是insert语句根本不提供涉及任何列的上下文,因此查询解析器无法理解
datetime
。这就是你的错误


我猜您正在尝试将日期/时间常量(从您的示例中可以是2016年6月1日或2016年1月6日)放入数据类型中。您需要使用该函数将字符串转换为该格式。我不打算建议使用特定的调用形式,因为我不知道字符串的格式。

您想用
转换
做什么?在oracle中,它用于将字符串从一个字符集转换为另一个字符集。我想用完整格式dd/mm/yyyy ss:mm:hh插入日期看看to_date函数try to_char(sysdate,'mm/dd/yyyyy hh24:mi:ss')@AvrajitRoy:no.
to_char()
日期
转换为
变量字符
在这种情况下,需要
转换为日期()
变量字符
转换为(实)
日期
INSERT INTO MEMBERS_CONTRIBUTIONS (
    CONTRIBUTION_TYPE,
    FROM_DATE,
    TO_DATE,
    ADDED_PERIOD_IN_MONTHS,
    MEMBER_AMOUNT,
    THE_CURRENCY,
    MATURITY_DATE
) VALUES (
    4,
    TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
    TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
    0,
    2500,
    'OMR',
    TO_DATE( '6/30/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' )
);