Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从SAS连接到Oracle_Sas - Fatal编程技术网

从SAS连接到Oracle

从SAS连接到Oracle,sas,Sas,这就是我配置LibName的方式 LIBNAME OrcaleSAS ORACLE USER=UserName PASSWORD=pwd*** PATH = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.unix.####.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=prod.tk.com)))' 下面是我正在使用的获取数据的代码 PROC SQL; connect using OracleS

这就是我配置LibName的方式

LIBNAME OrcaleSAS ORACLE USER=UserName PASSWORD=pwd*** PATH = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.unix.####.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=prod.tk.com)))'
下面是我正在使用的获取数据的代码

PROC SQL;
    connect using OracleSAS AS OracDB;
select * from connection to oracle
(select * from ENTITY_DATES_WK13);
disconnect from OracDB;
quit;

我收到错误OracleSAS不是SAS名称&LIBNAME语句中的错误,我对SAS还是相当陌生的

设置libname时,不需要PROC SQL的Connect部分。您将两种连接SQL数据库的方法混合在一起

假设libname工作正常,此时您可以像查询任何其他SAS表一样查询它:

PROC SQL;
  create table want as
  select * from ENTITY_DATES_WK13;
quit;

proc print data=want(obs=5);
run;

另一种方法是“pass-through”,这意味着将查询完全传递给服务器,以便在该端运行。这意味着内部查询需要与Oracle兼容,并且不能使用SAS函数或数据

设置libname时,不需要PROC SQL的Connect部分。您将两种连接SQL数据库的方法混合在一起

假设libname工作正常,此时您可以像查询任何其他SAS表一样查询它:

PROC SQL;
  create table want as
  select * from ENTITY_DATES_WK13;
quit;

proc print data=want(obs=5);
run;

另一种方法是“pass-through”,这意味着将查询完全传递给服务器,以便在该端运行。这意味着内部查询需要与Oracle兼容,并且不能使用SAS函数或数据

可以通过libname或显式传递连接到oracle或任何dbms。Libname方法用于访问SAS中的oracle表(或任何dbms)(表通常移动到SAS)。显式方法(使用connect语句),其中in查询直接发送到Oracle(或提到的dbms)。对于oracle(或anydbms)表,这种方法是不可互换的,因此会出现错误

下面是libname方法

下面是显式传递方法

 proc sql;    
  connect to oracle as myconn (user=smith password=secret 
   path='myoracleserver'); 

   create table sastab.newtable as
  select * 
     from connection to myconn       
        (select *          
           from oracleschematable);  

      disconnect from myconn; 
    quit; 

可以通过libname或显式传递连接到oracle或任何dbms。Libname方法用于访问SAS中的oracle表(或任何dbms)(表通常移动到SAS)。显式方法(使用connect语句),其中in查询直接发送到Oracle(或提到的dbms)。对于oracle(或anydbms)表,这种方法是不可互换的,因此会出现错误

下面是libname方法

下面是显式传递方法

 proc sql;    
  connect to oracle as myconn (user=smith password=secret 
   path='myoracleserver'); 

   create table sastab.newtable as
  select * 
     from connection to myconn       
        (select *          
           from oracleschematable);  

      disconnect from myconn; 
    quit; 

用于库的名称称为
libref
,长度只能为8个字符

OracleSAS
是9个字符


使用较短的名称。

用于库的名称称为
libref
,长度只能为8个字符

OracleSAS
是9个字符


用短一点的。

最后我结束了这样的工作

%let usr ="pradeep"
%let pwd ="******"
%let pth = "ORACLEPATH"

%put path: &path;

proc sql;
connect to oracle(user = &usr
                  password =&pwd
                  path =&pth buffsize=5000);

/* my code */

最后我做了这样的事情

%let usr ="pradeep"
%let pwd ="******"
%let pth = "ORACLEPATH"

%put path: &path;

proc sql;
connect to oracle(user = &usr
                  password =&pwd
                  path =&pth buffsize=5000);

/* my code */