简体   繁体   English

SQL Server 2008:使用TIMESTAMP(6)列通过链接服务器INSERT INTO到Oracle 11g表

[英]SQL Server 2008: INSERT INTO through Linked Server to Oracle 11g table with TIMESTAMP(6) column

I'm trying to insert a row with TIMESTAMP(6) column in an Oracle 11g table from SQL Server 2008 script, through Linked Server. 我正在尝试通过链接服务器在SQL Server 2008脚本的Oracle 11g表中插入一行TIMESTAMP(6)列。

This is what I tried so far: 这是我到目前为止所尝试的:

INSERT INTO LinkedServer..Schema.Table(TimeStampColumn) 
VALUES(CONVERT(DATE, '2013-08-07'));

INSERT INTO LinkedServer..Schema.Table(TimeStampColumn) 
VALUES(CONVERT(DATETIME, '2013-08-07 12:12:12.000001'));

INSERT INTO LinkedServer..Schema.Table(TimeStampColumn) 
VALUES(CONVERT(TIMESTAMP, '2013-08-07 12:12:12.000001'));

and many combinations, every time I get this error: 和许多组合,每次我收到此错误:

The OLE DB provider "OraOLEDB.Oracle" for linked server "LinkedServer" supplied invalid metadata for column "TimeStampColumn". 链接服务器“LinkedServer”的OLE DB提供程序“OraOLEDB.Oracle”为列“TimeStampColumn”提供了无效的元数据。 The data type is not supported. 不支持数据类型。

Is this possible? 这可能吗?

How can I convert SQL Server's varchar or datetime value to Oracle timestamp(6) data type? 如何将SQL Server的varchardatetime值转换为Oracle timestamp(6)数据类型?

Thanks a lot! 非常感谢!

well, i have found it: 好吧,我找到了:

EXECUTE ('begin INSERT INTO TEST_TIMESTAMP(TimeStampColumn)
      VALUES (TO_TIMESTAMP(?,''YYYY-MM-DD HH24:MI:SS.FF6'')); end;', 
      '2013-12-06 11:12:13.123456') 
     AT LINKEDSERVER;

'timestampcolumn' is column with type TIMESTAMP(6) 'timestampcolumn'是TIMESTAMP类型的列(6)

the same way you can use to call oracle functions: Calling an Oracle function from SQL Server Linked Server 与调用oracle函数的方法相同: 从SQL Server链接服务器调用Oracle函数

and it also works with variable 它也适用于变量

declare @date datetime2
set @date = SYSDATETIME()
EXECUTE ('begin INSERT INTO TEST_TIMESTAMP(TimeStampColumn)
      VALUES (?); end;', 
      @date) 
     AT LINKEDSERVER;

BUT in this case Oracle truncates it to seconds 但在这种情况下,Oracle会将其截断为秒

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

相关问题 INSERT INTO表将触发器生成的主键从SQL Server链接服务器返回到Oracle(11g) - INSERT INTO table RETURNING trigger-generated primary key from SQL Server linked server to Oracle (11g) 我应该学习SQL Server 2008还是Oracle 11g - Should I learn SQL Server 2008 or Oracle 11g SQL Server 2008与Oracle 11g的联接 - SQL Server 2008 JOIN with Oracle 11g 如何使用SQL2000链接服务器查询Oracle 11G表 - How to use a SQL2000 Linked Server to query an Oracle 11G table 从 SQL 服务器执行 Oracle 11g function 并将结果插入 Z97785240A0100CB0376 - Execute Oracle 11g function from SQL Server with result insert into SQL table 从Jdeveloper 11g将数据插入SQL Server表 - Insert data into SQL Server table from Jdeveloper 11g 无法在SQL Server 2014上创建到Oracle 11g的链接服务器连接 - Can't create a linked server connection on SQL Server 2014 to Oracle 11g 如何将数据从SQL Server 2008传输/迁移到ORACLE 11g? - How to Transfer/Migrate data from SQL Server 2008 to ORACLE 11g? SQL Server 2008 R2可以替代Oracle 11g RAC吗? - What is SQL Server 2008 R2's alternative to Oracle 11g RAC? 从SQL Server 2008R2到Oracle 11g的OpenQuery缓慢,但是在Oracle服务器上运行相同的查询速度很快 - OpenQuery from SQL Server 2008R2 to Oracle 11g Slow but same query run on the Oracle server is fast
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM