2014-02-27 71 views
2

我有一個使用案例,需要我在Sybase ASE的表t1和Sybase IQ的表t2上進行連接。我想通過在Sybase IQ中創建,create proxy_table將實現這一目標如下:使用Sybase IQ代理表時出錯

create server SYB1 class 'ASAODBC' using  
Driver=libsyb64.so;Server=hostname;Port=portnum;PacketSize=16384; 
EnableServerPacketSize=0' 

(我甚至高於試圖與「ASEODBC」和「ODBC」類)

create external login XYZ to SYB1 remote login 'SYBASEASEusername' 
identified by SYBASEASEpwd' 

create existing table 'proxy_table_name' at 'SYB1.dbname.owner.tablename' 

在上面的sql語句射擊我獲得: [Sybase] [ODBC驅動程序] [Sybase IQ]無法連接到'SYB1':[Sybase] [ODBC驅動程序] [SQL Anywhere]無法連接;服務器的定義是圓形的

我有上述在接口文件中提到的Sybase ASE主機的條目,我嘗試通過指定服務器名稱本身來創建服務器,但它仍然失敗。

任何幫助表示讚賞。

回答

0

當您嘗試連接到映射到本地數據庫的遠程服務器時,會發生此錯誤。這在Sybase IQ中不可行。檢查ODBC是否指向正確的服務器(在你的情況下應該是ASE服務器)。

+0

道歉,但請您詳細說明「嘗試連接到映射到本地數據庫的遠程服務器」。 – birjoossh

0

您的代理服務器正在使用'ASAODBC'類,但由於您連接到ASE服務器,因此應該是'ASEODBC'。作爲aF。說,你還需要確保你的連接字符串指向ASE服務器,而不是IQ服務器。

完全披露:我在SAP SQL Anywhere工程中爲SAP工作。 SQL Anywhere是SAP IQ的執行引擎(以前稱爲Sybase IQ)。

+0

是的,我的連接字符串指向Sybase ASE。像我提到的阿洛斯我嘗試了所有的類'ASAODBC','ASEODBC'和'ODBC'。是否需要爲此安裝任何特定的驅動程序? – birjoossh