Pergunta

Alguém pode aconselhar a sintaxe para passar uma tabela de uma biblioteca SAS para um banco de dados Oracle?

Exemplo de código abaixo (embora obviamente a conexão com a biblioteca de trabalho não possa ser referenciada dessa maneira)

PROC SQL noprint;
connect to ODBC as X (dsn='ALIAS' uid='USER1' pwd='passwd' quote_char='');
exec (CREATE TABLE Test AS
    SELECT * from WORK.MY_SAS_TABLE
    )by X;
disconnect from X;
quit;

Uma pergunta semelhante foi feita aqui mas parece se relacionar com uma conexão SQLServer, em vez de Oracle ..

Foi útil?

Solução

Configure um Libref para apontar para o seu banco de dados Oracle, usando o mecanismo ODBC LibName ou o Oracle LibName Engine (que será mais rápido se você tiver a licença e o software corretos instalados):

libname X oracle username='USER1' password='passwd' path=ORCL;

Se uma tabela vazia com as colunas certas já existir no Oracle, você pode usar:

proc sql noprint;
  insert into X.test select * from work.my_sas_table;
quit;

Se a tabela não existir, você pode usar uma etapa de dados:


data X.test;
  set work.my_sas_table;
run;

Outras dicas

Estou um pouco enferrujado, mas e se você configurar seu banco de dados como um libref?

Algo como:

libname X odbc dsn='ALIAS' uid='USER1' pwd='passwd' quote_char='';
data X.test;
    set work.my_sas_table;
run;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top