2017-08-03 8 views
1

私が作成したデータセットtable_db1:使用して外部データはパススルーとして以下

proc sql; 
CONNECT TO ORACLE (DB1 details); 
CREATE TABLE table_db1 AS SELECT * FROM CONNECTION TO ORACLE 
(select * from db1.table where rownum<10); 
quit; 

私は実行するには、このデータセットを使用したいが、他のDB2からのデータと結合します。私はWITH節を使用できるようにパススルーを好む。私の最初の試みは、パススルーがDB2のtable_db1を探すため、正常に実行されませんでした。回避策を提案してください。

proc sql; 
CONNECT TO ORACLE (DB2 details); 
CREATE TABLE table_db1 AS SELECT * FROM CONNECTION TO ORACLE 
(select * from db2.table2 a inner join table_db1 b 
on a.var_name = b.var_name 
where rownum<10); 
quit; 
+0

パススルーコードは完全にDBMS上で実行されます。データベース間のデータ転送やデータベース間の接続については、DBAに相談する必要があります。 – david25272

答えて

2

パススルーは、単に外部のDBMSにコードを送信することを意味します。したがって、外部DBMSが他のDBに接続できる場合は、パススルーで(おそらく)実行できます。

一般的に、いいえ、このようにパススルーを使用することはできません。 SASにデータベース接続の処理を依頼する場合は、Libnameメソッドを使用する必要があります。

関連する問題