从Oracle查询SQL Server - 强制元数据刷新

时间:2009-05-16 16:35:18

标签: sql-server oracle dblink

我是一名SQL Server开发人员,在Oracle中执行任务。 DBA在Oracle中设置了一个指向SQL Server数据库的DBLink。我正在编写SQL Server数据视图,然后在Oracle端编写一个视图,将其与其他Oracle数据连接起来。

问题:如果我在SQL Server上更改了视图的定义,即使“选择*来自myview @ dblink”错误也会出现“无效列”。关闭TOAD并重新打开似乎可以解决问题,但真正的问题是如何强制Oracle重新读取元数据而不重置连接?

4 个答案:

答案 0 :(得分:1)

这听起来像TOAD的问题,而不是oracle。如果在SQL * Plus中执行此操作会发生什么?

答案 1 :(得分:1)

我不知道我是否理解你,但如果你的Oracle数据库中有一个指向SQL服务器数据库的dblink,你需要SQL服务器中的数据:

SELECT *
FROM TABLE@dblink

SELECT "COL", "COL2", "COL3
from TABLE@dblink


SELECT T."COL", H."COL"
FROM TABLE1@dblink T, TABLE2@dblink H
WHERE T."ID" = H."ID"

答案 2 :(得分:0)

也许你能做到?:

alter view <<view_name>> compile; 

我没有测试过这个,因为我没有从Oracle到MSSQL的数据库链接。

答案 3 :(得分:0)

这似乎是Oracle 10g客户端的一个问题。目前的解决方案是断开连接并重新连接。鉴于我无法找到有这个问题的其他人,我会认为这是我的客户端配置的问题。