繁体   English   中英

SAS企业指南:如何获取Oracle表索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM