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"
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"
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.
はい、同じスキーマと同じテーブル名を含むもう1つのデータベースがあります。どのようにすればこれらの2つの表を区別できますか? 1つのデータベースで – sruthi
を使用すると、同じデータベースのみを照会できます。 他のデータベースの場合は、DBリンクやその他のメカニズムを使用する必要があります。 そのような状況でも、テーブルから選択してDB名を選択する必要はありません。 –
そして、すべてのデータベースが同じサーバーにあると思います。それは私が推測するケースではないはずです。他の場合は、DBリンクを作成して1つのデータベースに接続し、もう1つのデータベースを照会する必要があります。 – XING
dbに接頭語を付ける必要はありません。
識別子にはスキーマとタブ名しか使用できません。識別子の一部として「データベース」を持つことはできません。 –