使用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;
却报错,表或视图 不存在呢?
解决方案 »
- 求助:TYPE
- (转载)【独家连载】企业级GoldenGate实战揭秘(1)
- 提供些学习资料ORACLE优化
- plsql联oracle92报错:Error while trying to retrive text for error ORA-01019
- 关于用SYS登陆ORACLE 10g 的SQLPLUS
- 请问关于oracle数据库表的容量是多少?
- 在EXP数据库时,含有CLOB字段的表备份不出来,具体报下面的错误!
- 如何配置oracle 的监听
- order by 引起的查询速度变慢 4 倍,如何解决
- ORACLE的函数如何返回多个值?
- 挂板与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.先建立视图指向远程表,然后在存储过程中改为调用此视图