【问题标题】:How to create and drop temporary table on Oracle from SQL Server [duplicate]如何从 SQL Server 在 Oracle 上创建和删除临时表 [重复]
【发布时间】:2014-11-17 16:54:27
【问题描述】:

有没有办法通过 SQL Server (T-SQL) 存储过程在 Oracle 上创建和删除临时表?

我正在处理 SQL Server 上的存储过程,我需要将数据行从 SQL Server 发送到 Oracle,以便在 Oracle 端执行一些连接和更新。

谢谢。

【问题讨论】:

  • 如果过程在sql server中,为什么需要在Oracle端创建行?把所有东西都放在一个地方不是更有意义吗?也许在 sql 端创建您的临时表,然后进行几个查询或任何更新它。
  • 要更新的表位于Oracle 上,大约有250 万行。需要引用的数据行位于 SQL Server 上,并且大小要小得多。由于业务原因,我需要在 SQL Server 而不是 Oracle 上创建存储过程。

标签: sql-server oracle tsql


【解决方案1】:

正如 Sean Lange 已经说过的,将数据保存在一个地方更有意义。但是,如果您仍然需要它,那就去吧:

CREATE GLOBAL TEMPORARY TABLE tmp_table1
(
  col1 VARCHAR2(15),
  col2 NUMBER
)
ON COMMIT PRESERVE ROWS;

更多信息here

【讨论】:

  • 谢谢。但是如何从 SQL Server 上的存储过程中执行相同的操作?我知道如何使用 OPENQUERY 进行选择、插入、更新和删除等操作,但在网上找不到任何创建表的示例。
  • 1.检查权限(GRANT CREATE TABLE); 2.Oracle不喜欢存储过程中的CREATE语句,试试EXECUTE IMMEDIATE 'CREATE TABLE ...'。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多