假设sStorecode是:00020
以下只执行select语句以获取表STOREINFO中另一个数据库STORE的accountid,例如连接到p008081(其中008是sStorecode的子字符串,081是我在下面加入的), 但由于某些原因我得到错误(无效的SQL语句),有人可以帮忙吗?
EXECUTE IMMEDIATE 'select AccountID from STOREINFO@STORE.p'||substr(sSTORECODE,3,3)||'081';
提前致谢!
答案 0 :(得分:2)
EXECUTE IMMEDIATE是一个PL / SQL命令。在PL / SQL中,SELECT语句的结果需要在某处。但是你的陈述,你没有说明应该去哪里。
因此,如果您期望单行,您可以写:
EXECUTE IMMEDIATE 'select AccountID from STOREINFO@STORE.p'||substr(sSTORECODE,3,3)||'081'
INTO l_account_id;
l_account_id
是本地PL / SQL变量。
如果你期望有几行,你可以使用
EXECUTE IMMEDATE ... BULK COLLECT INTO l_account_tab;
l_account_tab
是PL / SQL集合变量。
或者如果你想使用游标,你可以写:
OPEN account_id_cv FOR 'select AccountID from STOREINFO@STORE.p'||substr(sSTORECODE,3,3)||'081';
account_id_cv
是REF CURSOR变量。
答案 1 :(得分:0)
似乎应该是这样的:
'select AccountID from STORE.STOREINFO WHERE sStorecode = ''p'||substr(sSTORECODE,3,3)||'081''';