从SAS连接到Oracle
这就是我配置LibName的方式从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 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 */