[英]SAS Enterprise Guide: How to get Oracle table indexes
我正在使用SAS企业指南(EG)6.1,想知道我们Oracle表的索引是什么。 有没有一种方法可以编写程序来获取此信息?
我试着做:
LIBNAME DW ORACLE USER='username' PASSWORD='password' PATH='path.world' SCHEMA='schema';
DATA _NULL_ ;
dsid = OPEN(DW.some_table) ;
isIndexed = ATTRN(dsid,"ISINDEX") ;
PUT isIndexed = ;
RUN ;
some_table是(我的表)的名称,但出现错误:
ERROR: DATA STEP Component Object failure. Aborted during the COMPILATION phase.
ERROR 557-185: Variable some_table is not an object.
参考: https : //communities.sas.com/t5/ODS-and-Base-Reporting/check-if-index-exists/td-p/1966
OPEN
接受字符串或可解析为字符串的值。 所以你需要
dsid= OPEN('dw.some_dataset');
我不知道您是否可以在Oracle中使用它,也不知道ATTRN是否可用于此特定目的。 这些都可以与SAS数据集一起很好地工作,但是要由libname引擎(及其使用的任何中间件)来实现ATTRN会使用的功能。
例如,我不使用Oracle,但是有带索引的SQL Server表,并且可以在上面运行上面的代码; 该代码似乎可以正常工作(它没有显示错误),但是当表显然是未索引的时候,它却显示表未索引。
最好的选择是使用直通( CONNECT TO ...
)而不是libname进行连接,然后可以运行本机Oracle语法而不是使用SAS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.