2017-01-24 18 views
1

SQL Serverにクエリを渡す際にいくつか問題があります。 OSは、私はこのコードを実行しようとSAS Enterprise Guideの中のRedHat 6です:SASがSQL Serverにクエリを渡す

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; 

が、私はエラーに直面:私はそれが正常に動作executeステートメントにQUOTED_IDENTIFIERオプションを置くしようとした場合

ERROR: CLI execute error: [SAS][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]INSERT failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations. : [SAS][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Statement(s) could not be prepared.

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を使用してLIBNAME STATEMENTQUOTED_IDENTIFIERを置くためにあらゆる機会はありますか? ODBCおよびOLEDB用のSAS/ACCESSコンポーネントはライセンスされていません。

+0

私の提案は機能しなかったので削除しました! FYI - 私は間違いなく暗号化されたパスワードをプログラムに入れないようにしようと思いますが、簡単に解読することができます。 http://harchut.de/proof-of-concept/sas-pwencode-decode/sas-pwencode-decode.html –

+0

'QUOTED_IDENTIFIER'を文字列の別の場所に移動すると、QUOTED_IDENTIFIERやその他2位? – Joe

+0

二重引用符を使用してみましたか? –

答えて

1

@Jdzel どのような接続を使用しますか? パラメータCONNECTION = SHAREDREADを追加してみます。

LIBNAME CISCO SQLSVR DBLIBINIT = 'SET ANSI_NULLS、QUOTED_IDENTIFIER、CONCAT_NULL_YIELDS_NULL、ANSI_WARNINGS、ANSI_PADDING ON' CONNECTION = SHAREDREAD DATASRCが= "nikolaev.ivan.ru" SCHEMA = CCユーザー= vorob2のPASSWORD =」 LIBNAMEのstetementは次のようになり{SAS002} 9930904131DC199B130A9E7D42A49B5D ";