SELECT tab1.column1 FROM DB2.Schema.table1 tab1;
我尝试从数据库1执行上面的查询。表1存在于DB2数据库中。它显示以下错误。
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
答案 0 :(得分:1)
无需在select
声明中提及数据库名称。见下文:
SELECT tab1.column1 FROM Schema.table1 tab1;
数据库链接使用:
CREATE DATABASE LINK sales.hq.acme.com
CONNECT TO scott IDENTIFIED BY tiger
USING 'sales';
创建此数据库链接后,您可以通过以下方式查询远程数据库上的模式SCOTT中的表:
SELECT *
FROM emp@sales.hq.acme.com;
您还可以使用DML语句修改远程数据库上的数据:
INSERT INTO accounts@sales.hq.acme.com(acc_no, acc_name, balance)
VALUES (5001, 'BOWER', 2000);
UPDATE accounts@sales.hq.acme.com
SET balance = balance + 500;
DELETE FROM accounts@sales.hq.acme.com
WHERE acc_name = 'BOWER';
您还可以访问同一数据库中其他用户拥有的表。该声明假定SCOTT可以访问ADAM的DEPT表:
SELECT *
FROM adams.dept@sales.hq.acme.com;
前一个语句连接到远程数据库上的用户SCOTT,然后查询ADAM的DEPT表。
Note: Dblinks are used using '@' symbol.
答案 1 :(得分:0)
您不需要为数据库添加前缀。只需使用以下命令确保您使用正确的架构:
ALTER SESSION SET current_schema = schemaname;