Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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传递查询到SQL Server_Sql_Sql Server_Sas_Enterprise Guide_Pass Through - Fatal编程技术网

SAS传递查询到SQL Server

SAS传递查询到SQL Server,sql,sql-server,sas,enterprise-guide,pass-through,Sql,Sql Server,Sas,Enterprise Guide,Pass Through,我在将查询传递到SQL Server时遇到一些问题。操作系统是RedHat 6。在《SAS企业指南》中,我尝试执行以下代码: LIBNAME CISCO SQLSVR DBLIBINIT='SET ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING ON' Datasrc="nikolaev.ivan.ru" SCHEMA=cc USER=vorob2 PASSWORD=

我在将查询传递到SQL Server时遇到一些问题。操作系统是RedHat 6。在《SAS企业指南》中,我尝试执行以下代码:

LIBNAME CISCO SQLSVR  DBLIBINIT='SET ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING ON'  Datasrc="nikolaev.ivan.ru"  SCHEMA=cc  USER=vorob2  PASSWORD="{SAS002}9930904131DC199B130A9E7D42A49B5D" ;
proc sql;
insert into CISCO.vContact_I (FirstName, MidName, LastName, Address, Phone, MobilePhone, EMail, ClientCode, AddInfo, Sex, TOPIC_ID, CUSTOMER_RK, RESPONSE_TRACK_CD, QuestFlag, CriticalMessage, RegularMessage) 
     values ('N/A','AO Lomon', 'Воронин Саша', 'N/A/N/A/N/A мес/платеж N/A','N/A', 'N/A','N/A','01039602','',1,.,'01039602','26670201',0,'N/A','N/A');
quit;
但我面临着错误:

错误:CLI执行错误:[SAS][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]插入失败,因为以下设置 选项的设置不正确:“引用的\u标识符”。验证集合选项是否正确用于索引视图和/或 计算列上的索引和/或筛选的索引和/或查询通知和/或XML数据类型方法和/或空间 索引操作:无法准备[SAS][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]语句

如果我尝试将
QUOTED\u IDENTIFIER
选项放入
execute
语句中,它将正常工作:

proc sql;
connect to sqlsvr as sql 
(Datasrc="nikolaev.ivan.ru"  USER=vorob2  PASSWORD="{SAS002}9930914010DC199B130A9E7D42A49B5D");
execute(
SET QUOTED_IDENTIFIER ON;
insert into cc.vContact_I (FirstName, MidName, LastName, Address, Phone, MobilePhone, EMail, ClientCode, AddInfo, Sex, TOPIC_ID, CUSTOMER_RK, RESPONSE_TRACK_CD, QuestFlag, CriticalMessage, RegularMessage) 
     values ('N/A','AO Lomon', 'Воронин Саша', 'N/A/N/A/N/A мес/платеж N/A','N/A', 'N/A','N/A','01039602','',1,'','01039602','26670201',0,'N/A','N/A');
) by sql;
是否有机会使用SQLSVR将
QUOTED_标识符
放入
LIBNAME语句
? ODBC和OLEDB的SAS/ACCESS组件未获得许可。

@Jdzel 您使用什么类型的连接? 尝试添加参数CONNECTION=sharedeard。 Libname语句将类似于:


LIBNAME CISCO SQLSVR DBLIBINIT='SET ANSI_NULLS,QUOTED_IDENTIFIER,CONCAT_NULLS_NULL,ANSI_警告,ANSI_PADDING ON'CONNECTION=sharedard Datasrc=“nikolaev.ivan.ru”SCHEMA=cc USER=vorob2 PASSWORD=“{SAS002}993090431dc199b130a9e7d42a49b5d”

我删除了我的建议,因为它不起作用!仅供参考-我一定会尽量避免将编码密码放入程序中,因为它们很容易被破解。如果您将
QUOTED\u IDENTIFIER
移动到字符串中的另一个位置,它是否会抱怨QUOTED\u IDENTIFIER或第二位的任何内容?您是否尝试使用双引号?无论我将“QUOTED\u IDENTIFIER”放在何处,错误都会再次出现。我还尝试使用双引号而不是简单的引号-同样的结果。