我是一名SQL Server开发人员,在Oracle中执行任务。 DBA在Oracle中设置了一个指向SQL Server数据库的DBLink。我正在编写SQL Server数据视图,然后在Oracle端编写一个视图,将其与其他Oracle数据连接起来。
问题:如果我在SQL Server上更改了视图的定义,即使“选择*来自myview @ dblink”错误也会出现“无效列”。关闭TOAD并重新打开似乎可以解决问题,但真正的问题是如何强制Oracle重新读取元数据而不重置连接?
答案 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客户端的一个问题。目前的解决方案是断开连接并重新连接。鉴于我无法找到有这个问题的其他人,我会认为这是我的客户端配置的问题。