使用sql语句 select × from ta@dblink 可以查询
但在存储过程中
CREATE OR REPLACE PROCEDURE Proc as
begin
select × from ta@dblink;
end;
却报错,表或视图 不存在呢?
但在存储过程中
CREATE OR REPLACE PROCEDURE Proc as
begin
select × from ta@dblink;
end;
却报错,表或视图 不存在呢?
解决方案 »
- 大四毕业学数据库oracle怎么说?IT之路走不走了?
- 急求数据库登录中的首选身份证明问题问题
- 请问“ORA-04068: 程序包 的现有状态已被丢弃”是怎么回事,怎么解决?
- sql
- 有些复杂的Update SQL语句
- 在一個表中重復查詢中一個fields對應多個value的問題 已解決一部分,請大家幫再看看!!!謝謝
- 各位请进,关于C#调用Oracle存储过程开发的问题
- Oracle Pro*c/c++编程有钱途吗
- 已root用户登录主机,如何已system登录本机数据库(没有system密码)
- 如何用oracle sql实现以下需求
- 挂板与oracle 的语句问题 请进!!
- “Refcursor值无效“的错误
不过有一点,存储过程中要写select into或者游标
直接授予的SELECT权限, 而非通过ROLE等方式授予的.
改成select ...into...试试
insert into ta@dblink select * from ta
执行这样的sql没问题,
CREATE OR REPLACE PROCEDURE Proc as
begin
insert into ta@dblink select * from ta;
end;
这样也会报错,表或视图 。
会不会是我没有在tnsname里配置远程数据库的信息,我直接用
create database link dblink
connect to a identified by a
using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)))(CONNECT_DATA=(SID=aa)))';这样的方式才出问题呢?
CREATE OR REPLACE PROCEDURE Proc as
begin
v_sql:='select × from ta@dblink';
EXECUTE IMMEDIATE v_sql;
end; orCREATE OR REPLACE PROCEDURE Proc as
begin
EXECUTE IMMEDIATE 'select × from ta@dblink';
end;
2.先建立视图指向远程表,然后在存储过程中改为调用此视图