Error handling 如何正确连接到数据库?
我不确定在尝试连接到odbc时为什么会出错 proc-sql; 24创建表xxx.test as 25从nxxe.nxrxxt中选择* 1连接成功 2 libref成功Error handling 如何正确连接到数据库?,error-handling,Error Handling,我不确定在尝试连接到odbc时为什么会出错 proc-sql; 24创建表xxx.test as 25从nxxe.nxrxxt中选择* 1连接成功 2 libref成功 我没有执行任何查询。我怎么会有语法错误?我甚至没有任何你的查询中有括号;尝试删除它们: proc sql; create table kyle.test as select * from noagree.no_agreement_list; quit; 但是,首先尝试用一张小桌子。另外,特别是对于Teradata,指定索引非
我没有执行任何查询。我怎么会有语法错误?我甚至没有任何你的查询中有括号;尝试删除它们:
proc sql;
create table kyle.test as
select *
from noagree.no_agreement_list;
quit;
但是,首先尝试用一张小桌子。另外,特别是对于Teradata,指定索引非常重要。使用您拥有的代码,数据集中的第一个SAS变量将用作索引。选择不当的索引可能会对您的数据库产生严重的负面影响,影响其他用户和您自己
我自己使用SAS/Access访问Teradata,因此我不知道ODBC是否提供这些选项,但下面是一个如何显式定义索引和各种列类型的示例:
data kyle.test
( dbcreate_table_opts='primary index(INDEX_COLUMN)'
dbtype=( INDEX_COLUMN='INTEGER NOT NULL'
, USER_NAME='VARCHAR(120) CHARACTER SET LATIN NOT CASESPECIFIC'
, PHONE_NUMBER='CHAR(10)'
, CONTACT_DATE="DATE FORMAT 'yyyy-mm-dd'"
, FROM_LINE_NUM='SMALLINT'
, DOLLAR_DATA='DECIMAL(15,2)'
)
);
set noagree.no_agreement_list;
run;
注意:这使用了正常的SAS数据步骤,而不是PROC SQL;数据集中未在dbtype选项中列出的任何变量都将使用标准SAS转换进行复制
最后,一旦这项工作开始,请确保运行“收集统计信息”步骤,这可以使用SQL助手工具SQLA来完成。我假设您有权访问SQLA,特别是如果您有对某个数据库的写入权限