这可能是一个简单的。基本上在 Oracle 的 PL/SQL 中,我从另一个数据库中进行选择:
select * From Store@dbstore.p009061;
我想要的是值 061 将来自变量名(myStore)。
所以它会是这样的:
select * from STORE@DBSTORE.P||myStore||'081';
请记住上面的 myStore 将保存值 061。
但是上面的不行吗?有人可以帮忙吗?谢谢
嗯,你不能直接在查询中这样做,你必须使用动态 sql。
就像是
declare
myStore varchar2(10):='061';
begin
EXECUTE IMMEDIATE 'SELECT * FROM STORE@DBSTORE.P'||myStore||'081';
end;
或者它应该是这样的?
declare
myStore varchar2(10):='061';
sStoreCode varchar2(10):='061';
begin
EXECUTE IMMEDIATE 'SELECT * FROM STORE@BNSTORE.P'||myStore
||'081 where storecode='||sStoreCode;
end;