尝试从Oracle表中的SQL表插入数据时,出现此错误“ ORA-01704:字符串文字太长”。在我的Oracle表中,我有一列具有XMLTYPE列类型。在创建表时,我指定了XML列,如下所示:
CREATE TABLE REPORTS (
...
XML XMLTYPE NULL );
Run Code Online (Sandbox Code Playgroud)
除了此列之外,在它之前还有其他23列,并且当我从插入语句XML列中排除时,insert正在传递。XML列包含表中所有其他23列的XML格式的数据。是否应该在XML列中添加一些其他规范来说明长度或其他?
这是从 TOAD 运行时完美运行的查询,但是当我从 Visual Studio 运行时,出现错误“ORA-00911:无效字符”。这就是我的查询的样子:
INSERT into TRB (ID, ID_REF, DATE, STATUS, INSERT_DATE,
ID_DD_REF, USER, VERIFY_DATE, VERIFY_USER)
select 11, 337470,
to_date('22.11.2016','DD.MM.YYYY'),
'O',
CAST(TO_TIMESTAMP('2016-11-22 14:28:24.260','YYYY-MM-DD HH24:MI:SS.FF9') AS DATE),
8552,
'test',
NVL(CAST(TO_TIMESTAMP('','YYYY-MM-DD HH24:MI:SS.FF9') AS DATE),''),
'' from dual
WHERE NOT EXISTS (SELECT ID FROM TRB WHERE ID = 11);
Run Code Online (Sandbox Code Playgroud) 我想从日期列等于特定日期的表中选择,我以格式'yyyy-mm-dd'的形式发送字符串.我需要转换该字符串,而不是比较我在表中是否有该日期.
现在我这样做:
select *
FROM table
where CONVERT(char(10), date_column,126) = convert(char(10), '2016-10-28', 126)
Run Code Online (Sandbox Code Playgroud)
date_column是表中的日期类型,我需要以这种格式'yyyy-mm-dd'从表中获取它,因为我使用126格式.我只是不确定其他部分我在哪里转换已经采用该格式的字符串并且我需要转换它因为我不知道使用它是否合适:
CONVERT(varchar(10), date_column,126) = '2016-10-28'
Run Code Online (Sandbox Code Playgroud)