2016-09-12 10 views
-1
SELECT tab1.column1 FROM DB2.Schema.table1 tab1; 

データベース1からこの問合せを実行しようとしています。この表はDB2データベースに存在します。次のエラーが表示されます。SELECT文ORA-00933:SQLコマンドが正しく終了していません

ORA-00933: SQL command not properly ended 
00933. 00000 - "SQL command not properly ended" 
+0

識別子にはスキーマとタブ名しか使用できません。識別子の一部として「データベース」を持つことはできません。 –

答えて

1

selectの文章にデータベース名は言及する必要はありません。以下を参照してください:

SELECT tab1.column1 FROM Schema.table1 tab1; 

DBリンクの使用方法:このデータベース・リンクが作成されると

CREATE DATABASE LINK sales.hq.acme.com 
    CONNECT TO scott IDENTIFIED BY tiger 
    USING 'sales'; 

、あなたはこのように、リモート・データベースにスキーマSCOTT内のテーブルを照会することができます

SELECT * 
    FROM [email protected]; 

DML文を使用して、リモート・データベースのデータを変更することもできます。

INSERT INTO [email protected](acc_no, acc_name, balance) 
    VALUES (5001, 'BOWER', 2000); 

UPDATE [email protected] 
    SET balance = balance + 500; 

DELETE FROM [email protected] 
    WHERE acc_name = 'BOWER'; 

同じデータベース上の他のユーザーが所有するテーブルにアクセスすることもできます。

SELECT * 
    FROM [email protected]; 

前の文は、リモート・データベース上のユーザーSCOTTに接続し、その後、ADAMのDEPT表を照会します。この文は、SCOTTは、ADAMのDEPT表にアクセスすることが前提としています。

Note: Dblinks are used using '@' symbol. 
+0

はい、同じスキーマと同じテーブル名を含むもう1つのデータベースがあります。どのようにすればこれらの2つの表を区別できますか? 1つのデータベースで – sruthi

+0

を使用すると、同じデータベースのみを照会できます。 他のデータベースの場合は、DBリンクやその他のメカニズムを使用する必要があります。 そのような状況でも、テーブルから選択してDB名を選択する必要はありません。 –

+0

そして、すべてのデータベースが同じサーバーにあると思います。それは私が推測するケースではないはずです。他の場合は、DBリンクを作成して1つのデータベースに接続し、もう1つのデータベースを照会する必要があります。 – XING

0

dbに接頭語を付ける必要はありません。

関連する問題