Utilisation de explicit Passage SQL, est-il possible que les tables SQL temporaires persistent entre les instructions PROC SQL
? J'utilise également mon SAS 9.3 pour me connecter à un serveur SAS; donc il y a aussi RSUBMIT
s. Le code ci-dessous est un exemple simple de ce qui se passe.SAS peut-il expliquer que les tables temporaires de transit persistent entre les instructions SQL PROC + RSUBMIT?
Avec ce code, les tables temporaires sont créées, mais il semble qu'après la ENDRSUBMIT
la connexion se termine dans un proche avenir - mais parfois ce code si bien si je l'exécute directement, mais si j'attends ~ 10 minutes et exécuter la dernière partie, les tables temporaires sont partis.
Les tables de travail sont très grandes et les transformations sont beaucoup plus rapides avec le passage, mais prennent encore du temps. Tout moyen de rendre les tables temporaires un peu plus permanentes du côté de la base de données?
/* EXAMPLE */
/* upload list to db*/
RSUBMIT;
PROC SQL;
connect to odbc as db (dsn=blahdb uid=&id pwd=&pass connection=global);
execute(load table #mylist (NUMLIST '\n') using client file 'mylist' escapes off quotes off delimited by ',') by db;
QUIT;RUN;
ENDRSUBMIT;
/* Join with database tables */
RSUBMIT;
PROC SQL;
connect to odbc as db (dsn=blahdb uid=&id pwd=&pass connection=global);
execute(select *
into #mylist2
from #mylist A
JOIN DBTABLE B on A.VAR = B.VAR
) by db;
QUIT; RUN;
ENDRSUBMIT;
/* download join into SAS*/
RSUBMIT;
PROC SQL;
connect to odbc as db (dsn=blahdb uid=&id pwd=&pass connection=global);
create table akwork.sastab as select * from connection to db (select * from #mlist2);
QUIT;RUN;
ENDRSUBMIT;
Les tables temporaires globales requièrent des droits d'administrateur db, est-ce correct? Je n'ai pas ça. Merci!