在我的数据库中查看V $ SQL,我刚刚发现了一个奇怪的查询,如下所示:
UPDATE "MYTABLE" "A1" SET "SOMECOLUMN" = (
SELECT "A2"."ANOTHERCOLUMN"
FROM "ANOTHERTABLE"@! "A2"
WHERE "A2".ROWID=:B1
)
Run Code Online (Sandbox Code Playgroud)
有谁知道语法@的含义!
我以前在Oracle中从未见过这样的东西
谢谢
这是源自远程数据库的查询。您在 V$SQL 中看到此查询的数据库已使用 @DB_NAME 语法在远程数据库的查询中引用
远程数据库已将查询推送到您的数据库执行,但为了回答查询,您的数据库需要从远程数据库拉回一些信息。这就是@!进来,基本上它是对查询源自的数据库的引用
例如,创建一个测试数据库链接,甚至到同一个数据库,然后运行以下命令:
alter system flush shared_pool;
select sysdate from dual@myself;
select sql_text from gv$sql where sql_fulltext like '%@!%';
SQL_TEXT
--------
SELECT SYSDATE@! FROM "DUAL" "A1"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3007 次 |
最近记录: |